Ruby on rails rails\u管理员:关系已更改,表单不正确
我在作文和语言之间有一种联系。一篇作文只能用一种语言写 MyRuby on rails rails\u管理员:关系已更改,表单不正确,ruby-on-rails,forms,rails-admin,rails-models,Ruby On Rails,Forms,Rails Admin,Rails Models,我在作文和语言之间有一种联系。一篇作文只能用一种语言写 Myschema.rb包含以下行: ... create_table "compositions", force: :cascade do |t| ... t.integer "product_language_id", null: false end ... add_foreign_key "compositions", "languages", column: "product_language_id" ... 我
schema.rb
包含以下行:
...
create_table "compositions", force: :cascade do |t|
...
t.integer "product_language_id", null: false
end
...
add_foreign_key "compositions", "languages", column: "product_language_id"
...
我意识到这段关系写错了,所以我把模型改成这样:
- 以前在
作文中有一行
。我改为属于:language
有一行:language的rb
- 以前,在
我改为语言中有一行
行。rbhas\u many:compositions
属于:composition
new
表单下选择用于合成的语言,有行但没有列表、框或任何内容,只有标签名“language”,尽管我在它的表中有一个条目
编辑2:一旦将关系恢复到我认为不正确的初始状态,在rails_admin中,可以从语言表单中添加组合,但我希望在组合表单中也有一个下拉菜单来选择语言,它不会出现。有什么建议吗
你能告诉我哪里不及格吗?提前感谢感谢我更正了它,将关系保留在其原始的所属的
/具有许多
状态,并在组合中添加了外键。rb
:
belongs_to :language, :foreign_key => 'product_language_id'
Rails假定一切都将按照约定进行。因此表的外键应该是tablename\u id
。当我们打破惯例时,我们必须在模型中添加额外的选项,告诉Rails外键不是它所期望的,它是不同的。
我们也可以这样写:
belongs_to :product_language, class_name: 'Language'
多亏我更正了它,才将关系保留在其原始的所属的/中,并且在组合中添加了外键。rb
:
belongs_to :language, :foreign_key => 'product_language_id'
Rails假定一切都将按照约定进行。因此表的外键应该是tablename\u id
。当我们打破惯例时,我们必须在模型中添加额外的选项,告诉Rails外键不是它所期望的,它是不同的。
我们也可以这样写:
belongs_to :product_language, class_name: 'Language'