1

rails adminでユーザーを編集すると、列が存在しません。販売とユーザーの関係は、ユーザーhas_many:salesであり、販売は買い手に属し、売り手には別の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 doこれを行うには、ユーザーモデルの、show doおよびedit doブロックにいくつかのテストフィールドを追加します(そして販売に関係するものはすべて除外します) 。

Rails管理者がsalesテーブル内のユーザーIDを検索しようとしないように、何を編集すればよいかわかりません。

どんなアイデア、特に答えも大歓迎です!

4

1 に答える 1

1

/アソシエーションforeign_keyでを指定する必要があります。has_manyhas_one

RailsDocsをチェックしてください:

:外部キー

関連付けに使用する外部キーを指定します。デフォルトでは、これは小文字で「_id」という接尾辞が付いたこのクラスの名前であると推測されます。したがって、has_manyアソシエーションを作成するPersonクラスは、デフォルトの:foreign_keyとして「person_id」を使用します。

于 2012-08-09T03:47:12.610 に答える