#ruby-on-rails #ruby-on-rails-3
#ruby-on-rails #ruby-on-rails-3
Вопрос:
когда я ввожу информацию в свою форму для новой страницы, она позволяет вам выбрать, какой автор создал страницу, все это работает нормально.
когда я захожу, чтобы сохранить страницу, я получаю эту ошибку
ActiveRecord::AssociationTypeMismatch in PagesController#create
Author(#2162588860) expected, got String(#2151988680)
в нем также говорится, что у меня проблемы в моем Pages_controller в действиях create и show.
def create
@page = Page.new(params[:page])
if @page.save
redirect_to(@page, :notice => 'Page was successfully created.')
else
render :action => "new"
end
end
def show
@page = Page.find(params[:id])
конец
Я изменил параметры: id на author, и это сохраняет пустую запись без содержимого, которое было введено в форму. Что я должен добавить в параметры? или в действии создать и показать .
Спасибо
Комментарии:
1. Что вы имеете в виду, когда говорите, что вы
have changed the params :id to author
? Опишите ваши ассоциации здесь, поскольку ошибка ясно говорит о том, что ваши ассоциации не совпадают.2. Я пытался изменить на .to_i на всех @page и в параметрах [:id]. когда я меняю параметры [: страница] на параметры [:автор], возвращается шаблон создания, но все поля пусты?? значит, она возвращает пустую форму? это меня заело..
Ответ №1:
Похоже, вы пытаетесь присвоить параметру author значение string, в то время как вам нужно задать author_id. Я могу предположить, что вы использовали элемент управления select в форме, построенный следующим образом:
f.select(:author, ... )
вместо
f.select(:author_id, ... )