我正在尝试学习一些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
答案 0 :(得分:3)
应该如下: -
@species = Species.find(params [:catch] [:species_id])
谢谢,Anubhaw