rails_admin: 改变了关系,形式不正确

rails_admin: changed relationship, form not correct

我对作文和语言有关系。一篇作文只能用一种语言写成。

我的 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"
...

发现关系写错了,于是把模型改成这样:

编辑:第一个问题:我的程序是否正确?我在 Rails 的 Ruby 还是初学者。

现在,在rails_admin中,不可能selectnew形式下的语言进行组合,有行但没有列表,框也没有任何东西,只有标签名称 'language',尽管我在其 table.

中有一个条目

编辑 2:一旦将关系恢复到我认为不正确的初始状态,在 rails_admin 中就有可能从语言形式添加组合,但我也想拥有组合形式中的下拉菜单 select 未出现的语言。有什么建议吗?

你能告诉我我哪里失败了吗?提前致谢

感谢 this upwork freelancer 我更正了它,使关系保持原来的 belongs_to / has_many 状态,并在 composition.rb:

中添加了外键
belongs_to :language, :foreign_key => 'product_language_id'

Rails 假设一切都将按照惯例进行。所以 table 的外键应该是 tablename_id。当我们打破惯例时,我们必须在我们的模型中添加额外的选项来告诉 Rails 外键不是它所期望的,它有些不同。 我们也可以这样写:

belongs_to :product_language, class_name: 'Language'