如何在 Rails 上的 Ruby 中使用动态选项创建 select 标签?

How to create a select tag with dynamic options in Ruby on Rails?

我是 Ruby 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> 错误消息。

请帮助我。

试试这个,

<%= 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

请试试这个

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