这是我的模型定义
class Partner < ActiveRecord::Base
has_many :projectcollaborations
has_many :projects, :through => :projectcollaborations, :source => :project
end
class Project < ActiveRecord::Base
has_many :projectcollaborations
has_many :partners, :through => :projectcollaborations, :source => :partner
end
class Projectcollaboration < ActiveRecord::Base
belongs_to :project
belongs_to :partner
end
我的加入表看起来像是一个
+--------------+--------------+------+-----+-------------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+-------------+-------+
| project_id | int(11) | NO | PRI | 0 | |
| partner_id | int(11) | NO | PRI | 0 | |
| project_role | varchar(255) | YES | | participant | |
+--------------+--------------+------+-----+-------------+-------+
现在,在创建新项目时,我想在project_role列中传递值“creator”。我怎样才能实现这一目标?
当前的创建方法看起来像下面的
def create
@partner = Partner.find(params[:partner_id])
@project = Project.new(params[:project])
@project.partners << @partner
respond_to do |format|
if @project.save
format.html { redirect_to partner_project_path(@partner, @project), notice: 'Project was successfully created!' }
format.json { render json: @project, status: :created, location: @project }
else
format.html { render action: "new" }
format.json { render json: @project.errors, status: :unprocessable_entity }
end
end
end