Ich habe eine has_many :through-Beziehung zwischen Benutzern und Projekten über ein Ownership-Join-Modell. Ich möchte in der Lage sein, ein Attribut des Eigentumsmodells zu setzen, während ich eine Beziehung zwischen einem Benutzer und einem neuen Projekt erstelle. Hier ist, was ich bis jetzt habe:
def create
@project = Project.new(params[:project])
if @project.save
current_user.projects << @project
flash[:success] = "Project created!"
redirect_to @project
else
flash[:error] = "Project not created."
end
end
Im Grunde weiß ich nicht, wie man den Wert "owner_type" im Eigentumsmodell bei der Erstellung eines neuen Projekts für einen bestimmten Benutzer, da ich nicht direkt das Eigentum Join-Modell in der Projekterstellung Controller erwähnen. Wie kann ich das tun?
Hier ist mein Eigentumsmodell (Join):
class Ownership < ActiveRecord::Base
attr_accessible :owner_type
belongs_to :project
belongs_to :user
validates :user_id, :presence => true
validates :project_id, :presence => true
validates :owner_type, :presence => true
end
und mein Benutzermodell:
class User < ActiveRecord::Base
attr_accessible :name, :email, :admin, :projects
has_many :ownerships
has_many :projects, :through => :ownerships
accepts_nested_attributes_for :projects
und mein Projektmodell:
class Project < ActiveRecord::Base
attr_accessible :name, :description
has_many :ownerships
has_many :users, :through => :ownerships