Вы передаете неправильный хэш params в вызов update_attributes.Это должно быть
if @quotation.update_attributes(params[:quotation])
.
Чтобы уточнить, передача :id
или :quotation
не делает ничего особенного. Символы в Ruby являются просто неизменяемой строкой .Таким образом, использование :id
или :quotation
является эквивалентом передачи строки «id» или «quotation».params[]
- это хэш-карта всех параметров формы, опубликованных на вашей странице.
В хэше params есть ключ типа, который вы передаете (в данном случае quotation
), который имеет значение другого хеша, содержащего все опубликованные поля, связанные с цитатой в вашем представлении изначения этих полей.
Значения идентификатора, контроллера и действия в хэше params получены из значений маршрута из URL.
Например,
params[] =
{
:controller => 'quotations',
:action => 'edit',
:id => '1',
:quotation =>
{
:quote_text=> "Blah",
:author=> "Steve",
:quote_type=> "1",
:user_id=> "6"
}
}