Я пытаюсь выучить некоторые Rails, но мне кажется, что я застрял в этой основной задаче.
В моей форме создания "Catch" я использую раскрывающийся список, чтобы связать улов с видом. Это делает хорошо:
<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}) %>
Но когда я пытаюсь создать «улов», я получаю ошибку:
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):
Вид с идентификатором 1 существует, но мой контроллер, похоже, не находит его или параметр, он кажется правильным, но не будет работать.
def create
@species = Species.find(params[:species_id])
@catch = @species.catches.create(params[:catch])
redirect_to species_path(@species)
end