2016-08-13 10 views
0

私は書いたヘルパーを利用するselectタグを書こうとしています。Rails 4 - ruby​​タグをselectタグの内部で使用できますか?

このようにタグを書き込むと、すべて動作します。

<%= select_tag "roles", options_from_collection_for_select(@roles, "id", "name"), :multiple => true, :class => 'chosen-select form-control' %> 

私は、ヘルパーを使用して、データベースの名前とは異なる役割の名前を表示したいと考えています。私はそれをする助けをしました。今は:name属性の代わりにそのヘルパーメソッドを使用しようとしています。

<%= select_tag "roles", options_from_collection_for_select(@roles, "id", "<%= text_for_role(name)%>"), :multiple => true, :class => 'chosen-select form-control' %> 

上記の試みは機能しません。私はselectタグの中でヘルパーを使う方法の例を見つけることができません。出来ますか?あなたは

<%= select_tag "roles", options_from_collection_for_select(@roles, "id", "<%= #{text_for_role(name)}%>"), :multiple => true, :class => 'chosen-select form-control' %> 

ような#{}を使用する必要がある文字列の中でルビーを解釈する場合

答えて

1

また、直接補間するのではなく、あなたのRubyコードを置くことができます:

<%= select_tag "roles", options_from_collection_for_select(@roles, "id", text_for_role("name")), :multiple => true, :class => 'chosen-select form-control' %> 

以上にあなたが遭遇したエラーを解決するだけですが、私はそれが最後に問題に対処していないと思います。データベースとは別の名前を表示する場合は、ロールモデルでtext_for_roleを定義する必要があります。 その後、お電話:

<%= select_tag "roles", options_from_collection_for_select(@roles, :id, :text_for_role), :multiple => true, :class => 'chosen-select form-control' %> 

これは、htmlタグにname属性を設定するには、各ARオブジェクトの役割のための方法のテキストを呼び出します。

+0

ありがとう - 私はこれらのオプションの両方を試しました。どちらもうまくいきません。 – Mel

+0

第1のエラー:予期しない$ undefined ...:multiple => true、:class => \ 'selected-select form-control \' ... ... – Mel

+0

2番目のエラー:未定義のローカル変数名またはメソッド名を#<#<クラス名:0x007ff69cf8f710>:0x007ff6a9cbc3f0> – Mel

関連する問題