我正在尝试创建一个下拉菜单,并在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
答案 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。