У меня есть страница редактирования со следующим кодом, в основном это выпадающий список и кнопка, которая вызывает обновление.
<% form_tag('switch_car', :method => :put) do%>
<div class="field">
<label>Car Name:</label>
<%= select("params", ":id", @available_cars.collect {|v| [v.name, v.id]})%>
</div>
<div>
<%= submit_tag "Switch Car" %>
</div>
<% end %>
Сервер читает как устанавливаемые параметры:
Parameters: {"utf8"=>"Γ£ô", "authenticity_token"=>"8vHXrnICaOKrGns6FfMUcd/dWo5kpNKpA8F5l5ozRkY=", "params"=>{":id"=>"9"}, "commit"=>"Switch Car"}
Однако, когда я помещаю параметры в сессию, я ничего не получаю. Кажется, всегда ноль. Не уверен, что я делаю не так? Вот код в контроллере.
def update
if params[:id]
session[:car_info_id] = params[:id]
redirect_to entry_url
else
redirect_to switch_car_path
end
end
Он всегда перенаправляется на switch_car_path, поэтому я предполагаю, что params [: id] всегда равен nil. Когда я ставлю if params [: id] == nil, он переходит к entry_url.
Заранее спасибо.