Я пишу приложение-календарь для планирования календаря в социальных сетях.
Мои отношения:
Пользователь has_many Календари, Calendar has_many Пользователи
Я пытаюсь внедрить администратора календаря, в котором календарь также принадлежит администратору. Администратор - это тот, кто создал календарь.
Я искал все здесь и нашел различные варианты, которые были просто отношениями has_many и own_to, не добавляя принадлежащие_для к отношениям соединения.
Я пытался сделать:
class Calendar < ApplicationRecord
has_many :user_calendars
has_many :users, :through => :user_calendars
has_many :calendar_posts
has_many :posts, :through => :calendar_posts
belongs_to :admin, :class_name => :User
def add_calendar
Calendar.new(admin: self)
end
class CalendarsController < ApplicationController
def create
@calendar = Calendar.new(calendar_params)
current_user.add_calendar
if @calendar.save
redirect to @calendar
else
render :new
end
end
private
def calendar_params
params.require(:calendar).permit(:name, :user_id)
end
Это только что обновилось, и единственное, что я получил из журнала сервера, - это откат. Я набрал ошибки, и они были пустыми.
Я также попытался сделать что-то похожее на другой пост, который я видел здесь, где я удалил метод add_calendar из пользовательской модели и эту строку кода в контроллере календаря и вместо этого использовал приватный метод в контроллере календаря в private:
def set_admin
@calendar.admin.id = current_user.id
end
А наверху календарного контроллера есть:
before_action :set_admin, only: :create
Это дало мне ошибку стека. Синтаксическое предупреждение
Я также пытался добавить миграцию для добавления столбца администратора в таблицу календаря с целым числом в качестве типа?
У меня есть Devise, настроенный для регистрации пользователей, но я пытался использовать Эшли для этой функции, если это возможно.