昨天我发了一条消息,但我认为我的问题不够具体。
我正在创建一个事件系统,并且我的多态关联有困难。
事件可以是:
我有两种类型的jingles将在达到阈值后同时播放:
我的模特:
class Event < ActiveRecord::Base
belongs_to :specific_media, polymorphic: true
belongs_to :generic__media, polymorphic: true
has_many :event_joins
accepts_nested_attributes_for :event_joins, allow_destroy: true
class EventJoin < ActiveRecord::Base
belongs_to :eventable, polymorphic: true
belongs_to :event
end
class Shop < ActiveRecord::Base
has_many :event_joins, as: :eventable
has_many :events,
:through => :event_joins
end
class Group < ActiveRecord::Base
has_many :event_joins, as: :eventable
has_many :events,
:through => :event_joins
end
表:
class CreateEvents < ActiveRecord::Migration
def up
create_table :events do |t|
t.string :title
t.references :specific_media, polymorphic: true
t.references :generic_media, polymorphic: true
t.string :created_by_id
t.string :updated_by_id
t.float :threshold
t.timestamps
end
end
def down
drop_table :events
end
end
class CreateEventJoins < ActiveRecord::Migration
def up
create_table :event_joins do |t|
t.integer :event_id
t.references :eventable, polymorphic: true
t.boolean :is_active, default: true
t.string :created_by
t.string :updated_by
end
add_index :event_joins, [:eventable_id, :eventable_type]
end
def down
drop_table :event_joins
end
end
我的控制器:
def index
@search = Search.new(params[:search])
@shop = find_user_shop(@search.shop_id)
@events = @shop.events
end
def new
@event = Event.new
end
def create
@search = Search.new(params[:search])
@shop = find_user_shop(@search.shop_id)
@events = @shop.events
@event = @events.new(params[:event])
if @event.save!
flash.now[:notice] = "Votre événement a bien été enregistré"
render :index
else
flash.now[:error] = "Erreur lors de l'enregistrement du événement"
render :new
end
end
事件连接表为空。 在这种多态关联中我哪里出错?
我希望event_type是Shop(本地)或Group(国家)。
致以最诚挚的问候,