我想在rails 3中编辑我的表的一条记录但是发生了如下错误: WordsController中的ActiveRecord :: RecordNotFound#edit 在我的控制器中:
def edit
@adverb =Adverb.find(:id)
end
在我看来,我有:
<% @adverb.each do |av| %>
<tr class="<%= cycle("odd", "even") -%>">
<td><%= av.name %></td>
<td><%= av.bedeutung %></td>
<td>
<%= link_to 'edit',{:controller => 'words',:action => 'edit',:id=> av.id} %>
</td>
</tr>
<% end %>
我该如何解决这个问题?
答案 0 :(得分:1)
尝试
@adverb = Adverb.find(params[:id])
答案 1 :(得分:1)
它只是
@adverb = Adverb.find(params[:id])
你不需要在使用where语句
时只需要的.first选项答案 2 :(得分:1)
:id
只是一个符号,你在params散列中寻找那个符号的值
所以而不是
Adverb.find(:id)
使用
Adverb.find(params[:id])
这将返回一条与:id
哈希中params
的值匹配的单条记录,该记录可能来自您{url /adverbs/:id
如果没有提供ID的记录,则会引发ActiveRecord::RecordNotFound
异常,该异常将在开发中显示堆栈跟踪页面,并且在生产中将显示404页面。