![](/img/trans.png)
[英]ActiveRecord::AssociationTypeMismatch - Ruby on Rails
[英]Ruby on Rails: ActiveRecord::AssociationTypeMismatch
嘗試提交記錄時出現ActiveRecord :: AssociationTypeMismatch錯誤。
預期主題(#88982676),得到了字符串(#20223000)
視圖:
<%= f.collection_select :subject, Subject.order(:subject), :subject, :subject, {prompt: "Select a subject"}, {class: "form-control"} %>
控制器:
def create
@homework = current_user.homeworks.build(homework_params)
if @homework.save
redirect_to homeworks_path
else
render 'new'
end
end
...
def homework_params
params.require(:homework).permit(:subject, :description, :date, :completed_at)
end
型號:Homework.rb
class Homework < ActiveRecord::Base
validates :subject, presence:true
belongs_to :subject
def completed?
!completed_at.blank?
end
end
Subject.rb
class Subject < ActiveRecord::Base
has_many :homeworks
def to_s
subject
end
end
這可以工作,但突然不起作用。 我確實將表的名稱更改為“主題”,並相應地更改了視圖和控制器。 它似乎正在尋找ID? 主題是一個字符串。 有什么建議嗎? 謝謝。
根據您的關聯模型,您的作業屬性應如下所示:
subject_id:integer description:string date:datetime completed_at:datetime
因此,您應該允許subject_id
,而不是homework_params
的subject
至於collection_select方法,應該是這樣的:
f.collection_select :subject_id, Subject.order(:subject), :id, :subject
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.