2014-12-04 74 views
0

我一直在尋找了幾天的解決方案,在Rails 4.1的應用程序,所以這裏是我的問題:顯示多個嵌套屬性

在Rails應用程序,我有我的模式和用戶ADRESS。

class User < ActiveRecord::Base 
     has_many :adresses 
     accepts_nested_attributes_for :adresses 

class Adress < ActiveRecord::Base 
     belongs_to :user 
     accepts_nested_attributes_for :user 

在我的表單中,我爲用戶製作了一個form_tag,沒有問題。

但是,我如何向最終用戶展示2個地址欄?我想用<%= f.fields_for :adress %>來顯示一個,沒關係。但是如果我顯示兩個表單(因此用戶可以輸入2個地址),它們都具有相同的名稱,並且請求帖子只保留一個。

我讀的文檔在http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-fields_for

但是,儘管如此,我不明白這一點。

有沒有適當的方法來做到這一點?

感謝

+0

一條建議 - 用英語命名你的類,變量,方法等。 – 2014-12-04 08:19:20

+0

感謝您的評論,在我的代碼中沒問題,但我在這裏寫錯了 – 2014-12-04 10:00:19

回答

0

因此,爲了幫助人誰是小白在Rails和堅持同樣的方式我:

在你的控制器:

@user = User.new 
@user.adresses = Adress.new, Adress.new 

在您看來,形式:

<%= form_for @user do |f| %> 
    <%= f.fields_for :adresses do |a| %> 
    <%= wp.text_field :name %> 
    <% end %> 
<% end %> 

將打印兩次地址的名稱字段。

(再次感謝@NickCatib)

+0

您還可以建立您的地址,例如'2.times {@ user.addresses.build}'而不是'@user.adresses = Adress.new,Adress.new' – 2014-12-04 11:09:36

+0

更多「DRY」這樣,謝謝:-) – 2014-12-04 13:38:07