метод find не может принимать параметры [: id] - PullRequest
1 голос
/ 16 июля 2011
def admission2
  puts params[:id]
  @student = Student.find(params[:id])
  @guardian = Guardian.new params[:guardian]
  if request.post? and @guardian.save
    redirect_to :controller => "student", :action => "admission2", :id => @student.id
  end
end

В данном коде метод find создает исключение, говорящее, что

  Couldn't find Student without an ID

но вывод оператора puts показывает, что params[:id] содержит значение. Я убедился, что запись для данного поля id всегда существует в базе данных.

Когда я вручную указывал число в качестве параметра find методов, это работало, поэтому я думаю, что find не может принять params[:id] здесь, есть ли другой способ сделать это?

Я использую рельсы 2.3.5

Ответы [ 2 ]

0 голосов
/ 18 июля 2011

Вот мой старый файл rout.rb:

map.connect ':controller/:action'
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id/:id2'
map.connect ':controller/:action/:id.:format'

Я только что удалил из него map.connect ':controller/:action' и теперь все работает безупречно.

0 голосов
/ 16 июля 2011

Это довольно странно.Имеет ли это какое-то значение, если вы делаете

@student = Student.find params[:id].to_i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...