编辑记录时出现问题

时间:2011-09-02 12:03:48

标签: ruby-on-rails

我想在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 %>

我该如何解决这个问题?

3 个答案:

答案 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页面。