rails admin列不存在

时间:2012-08-08 20:54:04

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

在rails admin中编辑用户时,我的列不存在。销售和用户之间的关系是用户has_many:销售,销售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),以便在显示页面上不显示有关销售的任何内容。我通过向用户模型的list doshow doedit do块添加一些测试字段(并将与销售无关的内容)添加到我这样做。

我不太清楚要编辑什么,以便rails管理员不会尝试在销售表中查找用户ID。

任何想法,尤其是回答都表示赞赏!

1 个答案:

答案 0 :(得分:1)

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

查看Rails文档:

  

:foreign_key

     

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