如何在Ruby on Rails中使用动态选项创建选择标记?

时间:2016-05-11 09:15:58

标签: ruby-on-rails-3 form-helpers

我是Ruby on Rails编程语言的新手。我想显示一个动态下拉列表。这是我的代码:

控制器

def property
   @rental_types = RentalType.all
end

视图

<%= form_tag(@property, method: "post", class: 'form-horizontal form-label-left', multipart: true, novalidate:"") do %>
   <%= select :property, :type_id, options_for_select(@rental_types.collect { |type|
                    [type.type_name.titleize, type.id] }, 1), {}, { id: 'countries_select', class: 'form-control col-md-7 col-xs-12' } %>
<% end %>

我的输出应该是

<select name="property[type_id]" class="form-control col-md-7 col-xs-12" id="countries_select">
   <option value="10">1 Bedroom Rentals</option>
   <option value="11">2 Bedroom Rentals</option>
   <option value="12">3 Bedroom Rentals</option>
   <option value="13">4 Bedroom Rentals</option>
</select>

我想在我的视图页面中动态下拉列表。但我收到undefined method 'type_id' for #<User:0x7aff460>错误消息。

请帮帮我。

2 个答案:

答案 0 :(得分:1)

试试这个,

<%= select_tag 'property[type_id]', options_from_collection_for_select(@rental_types, 'id', 'name'), class: 'form-control col-md-7 col-xs-12', id: 'countries_select' %>

有关详细信息,请浏览link

答案 1 :(得分:1)

请试试这个

<%= select("property", "type_id", @rental_types.collect {|p| [ type.type_name.titleize, type.id] }, {prompt: 'Select Person'}) %>