1

在 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 do,show do和块中添加了一些测试字段(并省略了与销售有关的任何内容) 。edit do

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

任何想法,尤其是答案都将不胜感激!

4

1 回答 1

1

你需要foreign_keyhas_many/has_one关联上指定。

查看 Rails 文档:

:foreign_key

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

于 2012-08-09T03:47:12.610 回答