2016-05-10 5 views
1

Railsアプリケーションでフォームのドロップダウンを作成しました。DropdownはフォームエラーのIDを表示します

私はシンプルフォームを使用しています。

<%= f.input :event_id, collection: Event.where(type: ["track and field", "ice", "gymnastics"]) 

First..Iはビューでこのクエリを持つように感じるだけひどいです:

私のドロップダウンフィールドには、次のようになります。しかし、コントローラのアクションにクエリを移動したときに、フォームのエラーが発生しました(必要なフィールドが入力されていないなど)、ページが更新されるときに、ドロップダウンで名前の代わりに整数(ID)以前に示された。私はparamが失われているように感じる。

思考?

+0

'f.associationような何かを行うことができますイベントスコープ:require_type、 - > {type:["track and field"、 "ice"、 "gymnastics"])}:イベント、コレクション:Event.require_type、prompt: –

答えて

0

私はどうしたらまず最初は、このように範囲を経由して、モデルにクエリを委任です:

# app/models/event.rb 
class Event < ActiveRecord::Base 
    ... 
    #Event.special_events 
    scope :special_events ->{ where(type: ["track and field", "ice", "gymnastics"]) } 
    ... 
end 

今、あなたのビューで、あなたがこの

<%= f.input :event_id, collection: Event.special_events) %> 
関連する問題