rails 4 populate dropdown values from database

后端 未结 3 717
清酒与你
清酒与你 2021-02-06 01:26

I have a dropdown in a rails form:

<%= f.select :lists, [[\"test1\", 1], [\"test2\", 0]] %>

This works fine but how can I make it dynamic

相关标签:
3条回答
  • 2021-02-06 01:49

    You can use options_from_collection_for_select.

    <% options = options_from_collection_for_select(@list, 'id', 'name') %>
    <%= f.select :all_val,  options %>
    
    0 讨论(0)
  • 2021-02-06 02:03

    This worked for me

    # view
    <%= form.select(:list_id) do %>
        <% @list.each do |l| -%>
          <%= content_tag(:option, l.name, value: l.id) %>
        <% end %>
    <% end %>
    

    and

    # controller
    @list ||= List.all
    

    `

    0 讨论(0)
  • 2021-02-06 02:04

    Don't quite have enough reputation to respond to your question in the thread above @learner but there's a good chance that @overflow didn't have @list defined in his controller.

    To solve my case I put my equivalent of @list (in this case @restaurants) in my "def new" method since I was using it to help create new items with associated restaurants.

    # GET /specials/new
      def new
        @special = Special.new
        @restaurants = Restaurant.all // Look Here
      end
    

    Additionally, :all_val in the original response should be the parameter you want to pass in to the database. In my case it was :restaurant_id

    0 讨论(0)
提交回复
热议问题