Модель создает пустую страницу?

#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, ... )