2017-07-17 41 views
0

如何解決此錯誤消息?我正在嘗試創建一個新對象,並收到以下錯誤消息。ActiveAdmin HMABTM錯誤消息

錯誤消息:unknown attribute 'w_artisan_id' for ArtisanColour.

如果我從ActiveAdmin表單中刪除collection_colour_ids,不再有一個錯誤,所以我敢肯定的它是與我建立呼叫artisan_colour加盟模式

代碼如下。

ActiveAdmin.register WArtisan do 

    # See permitted parameters documentation: 
    # https://github.com/activeadmin/activeadmin/blob/master/docs/2-resource-customization.md#setting-up-strong-parameters 
    # 
    permit_params :name, collection_colour_ids: [] 
    # 


    form do |f| 
     f.semantic_errors *f.object.errors.keys 
     f.input :name 
     f.input :collection_colour_ids, multiple: true, required: true, :label => 'Colours', :as => :check_boxes, :collection => CollectionColour.all.collect {|u| [u.colour_name, u.id]} 


     f.actions 
    end 

    end 

型號:

class ArtisanColour < ApplicationRecord 
    belongs_to :collection_colour 
    belongs_to :w_artisan 
    accepts_nested_attributes_for :collection_colour 
    accepts_nested_attributes_for :w_artisan 
end 


class CollectionColour < ApplicationRecord 
    has_many :artisan_colours 
    has_many :w_artisans, through: :artisan_colours 
    accepts_nested_attributes_for :w_artisans 
    accepts_nested_attributes_for :artisan_colours 
end 


class WArtisan < ApplicationRecord 
    has_many :artisan_colours 
    has_many :collection_colours, through: :artisan_colours 
    accepts_nested_attributes_for :collection_colours 
    accepts_nested_attributes_for :artisan_colours 

    def self.listing 
     order(created_at: :desc) 
    end 
end 

模式:

create_table "artisan_colours", force: :cascade do |t| 
    t.integer "collection_colours_id" 
    t.integer "w_artisans_id" 
    t.datetime "created_at",   null: false 
    t.datetime "updated_at",   null: false 
    t.index ["collection_colours_id"], name: "index_artisan_colours_on_collection_colours_id" 
    t.index ["w_artisans_id"], name: "index_artisan_colours_on_w_artisans_id" 
    end 

回答

1

數據庫遷移不正確。

應該

t.integer "w_artisan_id" 

t.integer "w_artisans_id" 

外鍵字段默認爲單數。