2011-07-28 19 views
0

はここでドロップダウンリストを含むフォームのための私のコードです -ドロップダウン選択ルビーレール

<div class="field"> 
<%= f.label :type, "Select profile type"%> 
<%= 
f.select :type, Profile::TYPES, 
:prompt => "Select a profile type" 
%> 
</div> 

ドロップダウンメニューが正常に見えます。しかし、どのオプションが選択されているかはどのようにチェックするのですか?この選択に基づいて別のビューにルーティングしたいと思います。

ありがとうございます!

+0

あなたはJavaScriptを使用してチェックします。 – s84

答えて

0

これを達成するには、jQueryやその他の一般的なJavascriptフレームワークを使用する必要があります。onChangeリスナーを添付するか、値をどこかに設定して確認してください。イベント、予告など

1

異なるビューへのルーティングのロジックは、コントローラで発生するはずです。このルーティングは、CRUD操作の一つではないので、

class ExampleController 

    def routing 
    case params[:example][:type] 
    when 'foo' 
     redirect_to foo_path 
    when 'bar' 
     redirect_to bar_path 
    end 
end 

あなたはカスタムアクション名を作成することができます。ユーザーはこのフォームを送信すると、のparamsの値をチェックし、ビューにルーティングするために、あなたのロジックを実行します。このルートは、カスタム名の場合はconfig/routes.rbファイルに配置する必要があります。

オプションで、ユーザーが値を変更したときにフォームを自動送信するために、他のユーザーが述べたように、選択のonChangeイベントにバインドできます。これにより、コントローラにデータが送信され、リダイレクトが実行されます。この方法の利点は、あなたのルート情報をJavascriptやRailのコントローラから守ることができることです。ルーティングon Railsの

詳細はここで見つけることができます:JavaScriptをhttp://guides.rubyonrails.org/routing.html 詳細はここで見つけることができるのonChangeへの結合:http://www.w3schools.com/jsref/event_onchange.asp

+0

私はコントローラに "route"というカスタムアクションを追加して最初のオプションを試しました。また、routes.rbファイルにパスを追加しました。 "NoMethodError in ProfilesController#route" 期待していないときにnilオブジェクトがありました! Arrayのインスタンスが予想される可能性があります 評価中にエラーが発生しました[] " ....どんな助けもありがとう。ありがとう! – madhavi

関連する問題