я следующие две моделей в моем приложении пространств, которые, как проекты & Права доступаRails Создание объекта с родителем?
class Space < ActiveRecord::Base
has_many :permissions
has_many :users, :through => :permissions
class Permission < ActiveRecord::Base
belongs_to :user
belongs_to :space
belongs_to :role
validates_presence_of :space_id , :user_id, :role_id
Так вот, что я хотел бы сделать, в Space Controller, когда пользователь не DEF СОЗДАТЬ, я хочу создайте пространство и разрешение с role_id = 1, чтобы обеспечить пространство/проект как создателя в качестве члена ...
Вот что у меня есть. Это становится грязным и не создавая разрешение
Space Controller:
def create
@space = current_user.spaces.new(params[:space].merge(:creator => current_user.id))
@space.permissions.new(:role_id => 1, :user_id => current_user.id)
respond_to do |format|
if @space.save
..
..
Спасибо за вашу помощь
Вы должны делать это с помощью обратных вызовов в моделях, а не в контроллере. Можете ли вы уточнить, когда вы хотите создать пространство. Например, когда новый пользователь или когда создается новое пространство и т. Д. – s84
@Sam. Благодарю. Что вы подразумеваете под вызовами в моделях? Можете ли вы привести пример? Thansk ... Я хочу, чтобы это произошло, когда пользователь создает новое пространство. – AnApprentice