我有一个Developers Table和一个Projects Table。我试图在我的Rails应用程序中分配这两个表之间的一对多关系。我是否会将开发人员添加到项目中?在Ruby on Rails中使用“append”运算符的一对多关联
开发商属于项目 ,项目有很多开发人员
所以我做了以下。
我创造了这个方法:
def add_to_project
@project = Project.find_by(:title => params[:title])
@developer = Developer.find_by(:name => params[:name])
unless @developer.nil? || @project.nil?
# @project.developers.push(@developer)
@project.developers << @developer
if @project.save
flash[:notice] = "project was added successfully"
else
flash[:notice] = "project was not added successfully"
end
else
flash[:notice] = "project was not added successfully"
end
redirect_to(:action => 'add_dev_proj') # this goes to a page that shows the two tables with the updates
end
我获得我构建了下面这样的的form_tag的标题和名字的值:
<%= form_tag(:controller => 'projects', :action => 'add_to_project') do %>
<%= text_field_tag('name', params[:name]) %>
<%= text_field_tag('title', params[:title]) %>
<%= submit_tag("Add dev to project") %>
<% end %>
尝试使用导轨这种方法时,我的问题是控制台它的工作原理,但在我的网络应用程序没有修改正在进行。有什么我在这里失踪。另外我确定我的关联是在我的模型中定义的。
任何见解都会很棒,非常感谢。
为什么你不使用has_many关系,你不必使用'append'然后 – Sontya 2015-02-11 10:44:11
有很多使用'has_many:developers',但问题是当我想添加开发人员到我的项目这是使用追加“<<”运算符完成。 – 2015-02-11 10:52:44
在开发人员模型中添加'belongs_to:project'并在项目模型中添加'has_many:developers',并且您在开发人员表中添加了foreign_key作为'project_id' – Sontya 2015-02-11 10:57:50