【问题标题】:rails admin column does not existrails admin 列不存在
【发布时间】:2012-08-08 20:54:03
【问题描述】:

在 rails admin 中编辑用户时,我得到一个不存在的列。 sales 和 users 的关系是 user has_many :sales,sale belongs_to 买家和另一个 belongs_to 卖家,写成类似

belongs_to :seller, :class_name=>User, :foreign_key=>:seller_id

ActionView::Template::Error (PG::Error: ERROR:  column sales.user_id does not exist
LINE 1: SELECT "sales".* FROM "sales"  WHERE "sales"."user_id" = 14
                                             ^
: SELECT "sales".* FROM "sales"  WHERE "sales"."user_id" = 14):
    1: = rails_admin_form_for @object, :url => edit_path(@abstract_model, @object.id), :as => @abstract_model.param_key, :html => { :method => "put", :multipart => true, :class => "form-horizontal denser", :data => { :title => @page_name } } do |form|
    2:   = form.generate :action => :update

我尝试编辑模型的配置文件 (initializers/rails_admin) 以不在显示页面上显示任何有关销售的内容。为此,我只向 User 模型的 list doshow doedit do 块添加了几个测试字段(并省略了与销售有关的任何内容)。

我不太确定要编辑什么,以免 Rails 管理员尝试在销售表中查找用户 ID。

感谢任何想法,尤其是答案!

【问题讨论】:

    标签: ruby-on-rails postgresql rails-admin


    【解决方案1】:

    您需要在has_many/has_one 关联上指定foreign_key

    查看 Rails 文档:

    :foreign_key

    指定用于关联的外键。默认情况下,这被猜测为 这个类的小写名称和“_id” 后缀。因此,建立 has_many 关联的 Person 类将使用 “person_id”作为默认值:foreign_key

    【讨论】:

    • 没问题!很高兴你解决了这个问题。
    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 2019-07-14
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多