У меня возникли трудности с построением атрибутов в моей модели. Я продолжаю видеть эту ошибку
NoMethodError: undefined method `users' for #<ActiveRecord::ConnectionAdapters::SQLite3::TableDefinition:0x00007f9d9ad9df98>
Мне нужны атрибуты, которые выглядят так:
#group.rb
class Spree::Group < ActiveRecord::Base
has_many :users
end
#user_decorator.rb
Spree::User.class_eval do
belongs_to :group, class_name: "Spree::Group"
end
Для group.rb я запустил
rails g model Spree::Group
и я получил:
class Spree::Group < ApplicationRecord
has_many :users
end
Я не понимаю, как добавить has_many: users, не заходя в модель и ввод ее туда.
Что касается user_decorator, я не уверен, как будет выглядеть эта миграция. Любая помощь была бы фантастической!





Вы можете вызвать:
rails g model group user:references
который сгенерирует столбец user_id в таблице групп и модифицирует модель group.rb, чтобы добавить отношение own_to: user. Обратите внимание, что вы должны вручную установить отношение has_many: groups или has_one: group к модели user.rb.
Если у вас уже есть сгенерированная модель, вы можете создать миграцию со следующим:
рельсы g миграция AddUserToGroup пользователь: принадлежит_to который будет генерировать:
class AddUserToGroup < ActiveRecord::Migration
def change
add_reference :groups, :user, index: true
end
end
единственная разница с этим подходом состоит в том, что отношение own_to: user в модели group.rb не будет создано автоматически, поэтому вы должны создать его для себя.
Отметьте это stackoverflow.com/questions/13557550/…
Похоже, это не сработало. Вы знаете, как мне написать миграцию для user_decorator?