问题
I'm getting a column does not exist when editing a user in rails admin. The relationship between sales and users is user has_many :sales, and sale belongs_to buyer and another belongs_to for seller, written out like
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
I tried editing the config file for the model (initializers/rails_admin) to not show anything concerning sales on the show page. I did this by adding just a few test fields (and leaving out anything to do with sales) to the list do, show do and edit do blocks for the User model.
I'm not too sure what to edit so that rails admin doesn't try to look for a user id within a sales table.
Any ideas and especially answeres are appreciated!
回答1:
You need to specify the foreign_key on the has_many/has_one association.
Check out the Rails Docs:
:foreign_key
Specify the foreign key used for the association. By default this is guessed to be the name of this class in lower-case and "_id" suffixed. So a Person class that makes a has_many association will use "person_id" as the default :foreign_key
来源:https://stackoverflow.com/questions/11873011/rails-admin-column-does-not-exist