1
私はフォームの選択をどこで行うのですか?デフォルトでは、「メイン」ルートフォルダを選択する必要があります。私はそれらがnilでない限り選択されたものとしてparamsを使用する例を見ました。しかし、私はparamがnilの場合に別の値を使用する例は見ていません(空でなければこれを使用してください)。タグを選択 - ロジックを使用して選択した値を指定
VIEW
<%= f.select :folder_id, options_for_select(@folders, @folder_to_select) %>
CONTROLLER:
if !params[:contact][:folder_id].nil?
@folder_to_select = params[:contact][:folder_id].to_i
else
@folder_to_select = @folders.assoc('MAIN').last.to_i
end
は、私はすべての選択の内側にそのコントローラロジック機能を得ることができますか?
ありがとうございます!
編集:
私はそれを逃したが、私のoriginallコントローラコードが実際に動作しませんでした。 [:contact] [:folder_id]がnilであるかどうかを確認する前に、[:contact]パラメータがnilであるかどうかをチェックしなければなりませんでした(トップレベル[:contact]が存在しない場合はゼロエラーを避けるため)。
if !params[:contact].nil?
if !params[:contact][:folder_id].nil?
@folder_to_select = params[:card][:folder_id].to_i
else
@folder_to_select = @folders.assoc('MAIN').last.to_i
end
end
おかげ。paramが私もそれからはnilエラーを取得する(ページ初期荷重)が存在しない場合。 – Reno
あなたは、あなたのオリジナルのポストにif文からはnilエラーを取得する必要がありますこれを回避するには、コンパクトなif文を使用することをお勧めします。(params.has_key?(:contact)?params [:contact] [:folder_id] .to_i:@folder.assoc( 'MAIN')。 to_i) –
私は、可能であれば、コントローラー内のロジックであるか、モデルまたはモジュールに追加しています。これらのコードはすべてビューを混乱させ、理解しにくくします。 –