私は新しいので、私の完全な無知を許してください。私はRails 3.2.3を使用しており、Ruby on Rails Essentialsコースをやっています。タイトルに記載されている章を完了しましたが、削除ボタンを確認した後にエラーページが表示されています。 error in actionを表示する動画は次のとおりです。Lynda RailsトレーニングでのActiveRecord :: RecordNotFoundエラー
私は以下のドキュメントを見て、タイプミスをしていないことを確認しました。ここで
は<div class="subject list">
<h2>Subjects</h2>
<%= link_to("Add New Subject", {:action => 'new'}, :class => 'action new') %>
<table class="listing" summary="Subject List">
<tr class="header">
<th> </th>
<th>Subject</th>
<th>Visible</th>
<th>Pages</th>
<th>Actions</th>
</tr>
<% @subjects.each do |subject| %>
<tr>
<td><%= subject.position %></td>
<td><%= subject.name %></td>
<td class="center"><%= subject.visible ? 'Yes' : 'No' %></td>
<td class="center"><%= subject.pages.size %></td>
<td class="actions">
<%= link_to("Show", {:action => 'show', :id => subject.id}, :class => 'action show') %>
<%= link_to("Edit", {:action => 'edit', :id => subject.id}, :class => 'action edit') %>
<%= link_to("Delete", {:action => 'delete', :id => subject.id}, :class => 'action delete') %>
</td>
</tr>
<% end %>
</table>
ここ
は私subjects_controller.rb私delete.html.erbここ
<%= link_to("<< Back to List", {:action => 'list'}, :class => 'back-link') %>
<div class="subject delete">
<h2>Delete Subject</h2>
<%= form_for(:subject, :url => {:action => 'destroy'}, :id => @subject.id) do |f| %>
<p>Are you sure you want to permanently delete this subject?</p>
<p class="reference-name">Subject name: <%= @subject.name %></p>
<div class ="form-buttons">
<%= submit_tag("Delete Subject") %>
</div>
<% end %>
</div>
されている私のlist.html.erbある
class SubjectsController < ApplicationController
def index
list
render('list')
end
def list
@subjects = Subject.order("subjects.position ASC")
end
def show
@subject = Subject.find(params[:id])
end
def new
@subject = Subject.new
end
def create
# Instantiate a new object using form parameters
@subject = Subject.new(params[:subject])
# Save the object
if @subject.save
# If save succeeds, redirect to the list action
redirect_to(:action => 'list')
else
# If save fails, redisplay the form so user can fix problems
render('new')
end
end
def edit
@subject = Subject.find(params[:id])
end
def update
# Find object using form parameters
@subject = Subject.find(params[:id])
# Update the object
if @subject.update_attributes(params[:subject])
# If save succeeds, redirect to the list action
redirect_to(:action => 'show', :id => @subject.id)
else
# If save fails, redisplay the form so user can fix problems
render('edit')
end
end
def delete
@subject = Subject.find(params[:id])
end
def destroy
Subject.find(params[:id]).destroy
redirect_to(:action => 'list')
end
end
ここには上記のビデオで参照されている。
なぜ私がファイルを適切に削除できないのかを理解する助けを得ることができれば、それは素晴らしいことです。
ジェームズ問題ないはずです、私は第一のオプションを試してみましたが、delete.htmlページがロードされたときにボタンが消えて、テキスト「%= f.submit(と交換しました"件名の削除")%> " 2番目のオプションでは、結果エラーページ「NoMethodError in Subjects#delete」が表示されます。 「正しいルートが呼び出されていない」ことがありますが、その意味がわかりません。 Lynda.comはオンライントレーニングコースですが、以前のバージョンのRailsを使用しています。これはいくつかの問題を引き起こしていると思います。私は彼らが持っているのとまったく同じようにコードを書いています。 –
@BrettPayne私は自分の答えを更新しました。 AWDWR(Agile Web Development With Rails)のコピーを入手することを提案できますか?ほとんどのRails開発者にとって聖書であり、これを非常にはっきりと説明しています。少なくともhttp://pragprog.com/book/rails4/agile-web-development-with-railsから入手できるpdfを入手する必要があります – jamesc