我有一個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