вывод рельсов select_tag - PullRequest
       22

вывод рельсов select_tag

0 голосов
/ 20 июня 2011

Я новичок в рельсах, и мне трудно понять, как использовать выходные данные формы выбора в рельсах 3. Вот мой тег выбора:

<%= form_for(:order, :url => {:action => 'create_order'}) do |f| %>
                    <%= select_tag( "experience_id", options_from_collection_for_select(@experiences, :experience_id, :experience_type)) %>
                    <% frame = frame.id %>
                    <% material = material.id %>
                    <%= f.hidden_field :frame_id, :value => frame %>
                    <%= f.hidden_field :material_id, :value => material %>
                    <div class="submit-button">
                    <%= submit_tag("Get Started!") %>
                    </div>

может быть немного запутанно вне контекста, но не нужно получать значение идентификатора опыта и присваивать его переменной в методе контроллера для 'create', который в настоящее время выглядит следующим образом:

 def create_order 
#need to assign the submitted select_tag value and assign it to @order.experience_id
   @order = Order.new(params[:order]).update_attributes(params[:order])
   @order_id = Order.last.id
   redirect_to(:action => 'drivetrain', :id => @order_id )
 end 

и идентификатор опыта проходит через, как видно из ошибки кода, которую я вызвал. опыт_идей не связан с: заказ?

{"commit"=>"Get Started!",
 "authenticity_token"=>"LrE2oOk2AkoUJbddC2crjnA5j4tIdxLGla52LWISx08=",
 "utf8"=>"✓",
 "order"=>{"material_id"=>"1",
 "frame_id"=>"1"},
 "experience_id"=>"4"}

спасибо за любую помощь!

Ответы [ 2 ]

0 голосов
/ 20 июня 2011

решил это - тег выбора не возвращал Experiernce_id в качестве параметра: order, как, например, его собственный параметр (experience_id = "6"), а не: order {experience_id = "6", material_id = "1" }.решение состояло в том, чтобы просто изменить теги выбора:

<%= f.select :experience_id,    options_from_collection_for_select(@experiences, :experience_id, :experience_type) %>

f.select гарантировал, что значение было возвращено в качестве параметра заказа и выбрано для возвращаемого значения: experience_id и значения id, которое можно вставить в таблицу заказов вполе «experience_id».

надеюсь, что это поможет кому-то еще новичку в рельсах форм или форм в целом.

0 голосов
/ 20 июня 2011

Как насчет этого:

<%= select_tag(:experience, 
               Experience.all.collect {|e| [ e.experience_type, e.id ] } ) %>

и, возможно, вам это поможет: http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html

...