Как получить идентификатор из формы collection_select? - PullRequest
0 голосов
/ 21 октября 2011

Я могу видеть идентификатор внутри параметров в журнале, но я не могу получить к нему доступ в контроллере. Может ли какой-нибудь орган, пожалуйста, показать мне, как еще я мог бы сделать? Очевидно, @city=City.find(params[:cities][:city_id]) не выполняет свою работу.*

  <%= form_for :city, :url=>{:action =>"next"} do |f| %>
  <%= f.collection_select(:city_id, City.all, :id, :name ,:prompt=>"Select your city") %>

   <%=f.submit "continue" %>
   <%end%>

Домашний контроллер

       def next
       @city=City.find(params[:city_id]) 
       session[:city_id] = @city.id
       redirect_to :controller=>"parks",:action =>"show" 
       end

В журнале

     Started POST "/home/next" for 127.0.0.1 at 2011-10-21 12:16:37 -0700
     Processing by ParkController#show as HTML
     Parameters: {"utf8"=>"✓",  "authenticity_token"=>"7VVJ9GHcU4miYLCkSt91S674GGTScor86Tcsz7O25ik=", "city_id"=>"2",  "commit"=>"continue"}
     Rendered park/show.html.erb within layouts/header (2.5ms)
     Completed 500 Internal Server Error in 7ms

Ответы [ 3 ]

1 голос
/ 21 октября 2011

Хм, возможно я ошибаюсь (не опытный разработчик Rails), но разве вам не нужно просто писать

params[:city_id]

?

1 голос
/ 22 октября 2011

Аааа, черт, я идиот не видел этого в начале. Вы написали

@city=City.find(params[:cities]) 

Но это должно быть

@city=City.find(params[:city_id]) 
1 голос
/ 21 октября 2011

Вы написали

<%= collection_select(nil,:city_id, City.all, :id, :name ,:prompt=>"Select your city") %>

Но вы должны написать

<%= f.collection_select(:city_id, City.all, :id, :name ,:prompt=>"Select your city") %>

Как вы сделали для кнопки отправки!На самом деле вы также можете добавить эту строку к цели формы:

<%= params.inspect %>

, чтобы увидеть, какие значения переданы в какой хэш.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...