0

ビューを動的に構成するsearch.html.erbために、ハッシュとして表示する必要がある各フィールドの詳細、またはテーブル内の文字列として表されるハッシュを格納しています。たとえば、statusフィールドを表示するために、関連するstatusレイアウトを次のように保存しています。

{:status => {:label => 'Status', :collection => return_misc_definitions('project_status') } }

次に、私のsearch.html.erbには以下の疑似コードがあります

<%= simple_form_for @model,  :method => :put, :url => @search_results_url  do |f| %>
      <%= @fields_details.each do |field, layouts| %>
          <%= f.input field, eval(layouts) %>
      <% end %>
<% end %> 

目標は、次のようなものになることです

<%= f.input :status, :label => 'Status', :collection => return_misc_definitions('project_status') %>

「レイアウト」の関数を使用していevalますが、eval が関数を評価しようとするため、これは機能しませんreturn_misc_definitions。どうすればこの評価を逃れることができますか? ruby 1.9.3rails 3.2.12およびを使用していsimple_formます。助けてくれてありがとう

4

1 に答える 1

1

これは私のために働いた:

<% @fields_details = {:status => {:label => 'Status', :collection => [1,2,3,4]} } %>

<%= simple_form_for :form,  :method => :put, :url => @search_results_url  do |f| %>
  <% @fields_details.each do |field, layouts| %>
    <%= f.input field, layouts %>
  <% end %>
<% end %>

画面にレンダリングされないようにするために=inを削除し、フィールドとレイアウトを単純なフォームに直接渡しました。eval は必要ありません。 <%= @fields_details.each do |field, layouts| %>@field_details

于 2013-06-03T02:59:05.333 に答える