Я работаю над приложением Rails, где Пользователь может создать журнал, а другой пользователь может подписаться на этот журнал. Я хочу знать, как это сделать.Has_many через и принадлежит Rails
В настоящее время у меня есть модель подписки, которая строится от текущего пользователя при создании и пользователей текущего журнала как magazine_id. Это позволяет мне иметь таблицу user_ids и magazine_ids. Это позволяет мне видеть все подписки, но это означает, что я не могу легко проверить все журналы, на которые вы подписались, или проверить всех подписчиков журнала.
Когда я пытаюсь использовать has_many: через, он вызывает ошибку со зданием от текущего пользователя. Я привел соответствующий код ниже, надеюсь, он охватывает все это и благодарит заранее.
модель Пользователь:
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :magazines
has_many :subscriptions
end
Подписка модель:
class Subscription < ActiveRecord::Base
belongs_to :user
belongs_to :magazine
end
Magazine модель:
class Magazine < ActiveRecord::Base
belongs_to :user
has_many :subscrptions
has_many :users
end
Фрагмент кода от контроллера подписки, который подбрасывает ошибку, когда я использую имеет много до
def new
@subscription = current_user.subscriptions.build
@sub = Sub.find(params[:sub_id])
end
Надеюсь, этого достаточно, чтобы кто-то мог выяснить, если нет, пожалуйста, запросите у меня другой код или информацию.
Пожалуйста, разместите ошибку с полным журналом ошибок – Pavan
Я добавил, что скриншот страницы с ошибкой достаточно? – ZSOR