2013-03-09 72 views
0

考慮我有兩個表,即項目和顏色。如何從rails的另一個視圖添加值到表中?

Item表包含has_many與顏色的關係,因爲每個項目可以具有多種顏色但顏色尚不存在。

我有一個頁面,我必須添加項目,並在同一頁面我必須指定項目的顏色。所以如何將這些值與物品ID一起添加到顏色表中。請幫幫我。 我正在努力移動。

編輯:

項目模型

class Item < ActiveRecord::Base 
has_many :colors 
end 

顏色模型

class Color < ActiveRecord::Base 
    belongs_to :items 
    end 

id | created_at | updated_at | item_id | color_name 
----+------------+------------+---------+-------------- 
+2

如果您發佈的模型和視圖,我們也許可以幫助你。 – kobaltz 2013-03-09 13:08:43

+0

正如我之前所說,我有new.html.erb項目,我必須保持顏色的字段,我必須保存顏色表的值和item_id的關聯,但我不知道如何做到這一點? – logesh 2013-03-09 13:29:08

回答

1

如果顏色會ALW ays是用item創建的,那麼你需要使用嵌套屬性。

class Item < ActiveRecord::Base 
    attr_accessible :colors_attributes 
    has_many :colors 
    accepts_attributes_for :colors 
end 

在你的控制器動作Items#new

@items.colors.build 

在你的項目/ new.html.erb與項目表中的其它字段添加fields_for。

<%= form_for @item do |f| %> 
    <%= f.text_field :name %> 
    ... 
    <%= f.fields_for :colors do |color| %> 
    <%= color.text_field :some_column_name_from_color %> 
    <% end %> 
<% end %> 

對於添加/刪除多種顏色上飛,你可以使用nested_form gem

+0

我已經按照你所說的去了,當我去找items/new的時候,它會顯示nil:NilClass的未定義方法'colors'。我究竟做錯了什麼? – logesh 2013-03-11 04:21:59

+0

以前的錯誤來了,當我添加了accepters_nested_attributes_for:顏色,當我改變了accep_attributes_for:顏色它顯示未定義的方法'鍵?'爲零:NilClass。 – logesh 2013-03-11 04:40:02

+0

對不起。這是我的錯誤。我已經糾正,它工作完美。非常感謝。 – logesh 2013-03-11 04:56:41

相關問題