在rails 3中选择标签

时间:2011-12-01 08:30:54

标签: ruby-on-rails

我正在尝试创建一个下拉菜单,并在rails3中为其分配onchange事件。我该怎么做。

<select name="" class="wy_inputs_selects sround">
       <% @domains.each do |record| %>
  <option value="<%= record.name %>.<%= record.tld %>" ><%= record.name %>.<%= record.tld %></option>
           <%end%>
</select>

我正在将上面的代码转换成ruby,如

<%= select_tag "",:class=>'wy_inputs_selects sround',options_from_collection_for_select(@domains,"name",

但我仍然坚持如何使用上述格式获取record.tld和record.name

2 个答案:

答案 0 :(得分:2)

试试这个

<select name="" class="wy_inputs_selects sround">

<% @domains.each do |record| %>
 <% @name_tld = record.name.to_s + "." + record.tld.to_s %>
 <option value="#{@name_tld}" ><%= @name_tld %></option>
 <% end %>

</select>


你也可以像rails一样选择帮助方法(这在表格中使用)

示例1

<%= form_for @dates,:remote => true do |f| %>
    <%= f.date_select :booking_date,:onchange => "this.form.submit();" %>
<% end %>

示例2(默认值)

<%= form_for(@image),:remote => true do |f| %>
    <%= f.select :album_id, @albums_all.map {|m| [m.name, m.id] }, :selected => @album_id %> <!-- default value, current album -->
<% end %>

请记住在views / layouts / application.html.erb文件中包含它,因此rails将使用ajax

<%= javascript_include_tag :defaults %>
<%= csrf_meta_tag %>

答案 1 :(得分:0)

我会在模型中为记录定义名称(record.rb或domain.rb,无论你的模型名称是什么),例如:

def detail_name
  return self.name+'.'+self.tld
end

然后从select标签中调用detail_name。