ActiveRecord :: RecordNotFound(无法找到没有ID的物种)

时间:2010-09-21 11:57:13

标签: ruby-on-rails

我正在尝试学习一些Rails,但我似乎陷入了这个基本任务。

在我的“Catch”创建表单中,我使用下拉列表将catch连接到一个specie。它渲染得很好:

<select id="catch_species_id" name="catch[species_id]">  
<option value="">Please >select</option>  
<option value="1">A species</option>  
</select>

我使用的助手是

<%= collection_select(:catch, :species_id, @species, 
      :id, :name, {:prompt => true}) %>

但是当我尝试创建一个“catch”时,我得到错误:

Parameters: {"utf8"=>"✓",
   "authenticity_token"=>"tfS0WZGGZABBOk9UbPbAvnU3iCqXLvDODivL3+Jr7Io=", 
   "catch"=>{"length"=>"55", "weight"=>"66", **"species_id"=>"1"**}, 
   "commit"=>"Create Catch"}

ActiveRecord::RecordNotFound (Couldn't find Species without an ID):

ID为1的物种存在,但我的控制器似乎找不到它或参数,感觉不对,但不起作用。

def create  
   @species = Species.find(params[:species_id])  
   @catch = @species.catches.create(params[:catch])  
   redirect_to species_path(@species)  
end

1 个答案:

答案 0 :(得分:3)

应该如下: -

@species = Species.find(params [:catch] [:species_id])

谢谢,Anubhaw