私はRailsにかなり慣れておらず、最初の「本物の」アプリを構築し、関係を適切に機能させる方法を理解するのに苦労しています。
クイズモデルとアイコンモデルがあります。各クイズはアイコンに属し、アイコンには多くのクイズがあります。(アイコンをカテゴリと考えてください)。
「新規/編集」クイズフォームで、正しいアイコンを選択するための選択ボックスが必要です。現時点で私は...
<%= collection_select(:quiz, :icon_id, Icon.all, :id, :title, :prompt => true) %>
そして、私のクイズコントローラーで私が持っているアクションを作成します...
def create
@icon = Icon.find(params[:quiz][:icon_id])
@quiz = @icon.quizzes.build(params[:quiz])
if @quiz.save
flash[:success] = "New quiz created successfully!"
redirect_to @quiz
else
render 'new'
end
end
フォームを送信すると、
Can't mass-assign protected attributes: icon_id
icon_idとして理解しているエラーは、モデルでattr_accessibleとして割り当てられていません。
これには実際のセキュリティリスクがないため、アクセス可能にするか、ビルドメソッドに渡す前にクイズハッシュからicon_idを削除することができますが、これらのオプションはどちらも正しい方法ではないようです。
これを行う正しい方法は何ですか?
ありがとう!