2017-01-09 10 views
0

私はユーザーがそれぞれのテーブルで利用可能なコンポーネントに基づいてpc(システム)のコンポーネントをカスタマイズできるアプリケーションを構築しています。マザーボードテーブル、CPUテーブルなど)特定の属性を持つオプションのみを表示するレールでcollection_selectを作成する方法

私は、システムフォームのドロップダウンメニューからコンポーネントを選択できるようにしたいと考えています。

私はこの

<%= collection_select(:system, :motherboard_id, Motherboard.all, :id, :model, prompt: true) %> 

ようcollection_select使用することによってこれを達成することができましたしかし、collection_selectは、テーブル内のすべてのコンポーネントを表示し、私はavailable: true属性を持っているそれらのコンポーネントを表示したいです。

私は、各項目の可用性をチェックするbefore_saveコールバックを追加することを考えたが、それはそれが仕事を得るための唯一の方法ではない場合、私undefined method 'map' for false:FalseClassscreenshot:

になり

<%= collection_select(:system, :motherboard_id, Motherboard.any? {|mobo| mobo.available?} , :id, :model, prompt: true) %> 

を試してみましたUXの観点から判断が悪いと思われる

答えて

0

<%= collection_select(:system, :motherboard_id, Motherboard.where(available: true), :id, :model, prompt: true) %> 
+0

これは完璧に動作します!どうもありがとうございます!私は数日間このことに固執してきました。 – disc0ninja

+0

@ disc0ninjaこれがうまくいく場合は、あなたの質問に対する答えとしてShannonの投稿をマークしてください。 – BoraMa

関連する問題