Я в настоящее время пытаюсь внедрить модель Category
в свое приложение. Я пытаюсь спроектировать его таким образом, что Users
может иметь много Categories
, а так же может Groups
.Ruby on Rails - Полиморфная ассоциация со скидками
Проблема, с которой я столкнулся, заключается в том, что я также хочу иметь обычный список Categories
, если они не назначены ни одному User
или Group
.
Я ссылался на rubyonrails.org/association_basics.
class CreateCategories < ActiveRecord::Migration[5.0]
def change
create_table :categories do |t|
t.string :name
t.text :description
t.references :categorizable, polymorphic: true, index: true
t.timestamps
end
end
end
class Category < ApplicationRecord
belongs_to :categorizable, :polymorphic => true
end
class User < ApplicationRecord
has_many :categories, :as => :categorizable
end
class Group< ApplicationRecord
has_many :categories, :as => :categorizable
end
Я пытаюсь создать новый Category
через rails c
, но всякий раз, когда я пытаюсь сохранить, она катится назад моя сделка, вероятно, потому, что не хватает какое-то состояние.
Category(id: integer, name: string, description: text, created_at: datetime, updated_at: datetime)
Category.create(:id => 1, :name => 'Category_1', :description => '')
begin transaction
rollback transaction
Я также чувствую, что есть лучший способ, чтобы создать новую Category
, так как я не должен быть установка id
вручную.
Благодарим за помощь.
Вы используете рельсы 5? – usha
Если вы не должны устанавливать идентификатор, почему вы это делаете? Является ли 'begin transaction' и' rollback transaction' все, что вы можете видеть в журнале? – chumakoff