1

我正在Rails 4.0.4中構建一個擁有兩個用戶(買方和賣方)的登錄系統。Rails 4 - 多態協會 - 嵌套屬性未在表格中顯示

在認證我現在用的是制定創業板:https://github.com/plataformatec/devise

要創建一個新的買家我使用route買家/新。但是,用戶的字段不顯示在視圖中。我還使用調試在視圖中顯示@ buyer.user並且它已創建。但是,當我撥打f.fields_for @ buyer.user do | u |從不輸入循環。

任何想法,爲什麼這是?此外,多態關聯似乎在rails控制檯中工作。

買家控制器:

# GET /buyers/new 
    def new 
    @buyer = Buyer.new 
    @buyer.build_user 
    end 

買手模式

class Buyer < ActiveRecord::Base 
    has_one :user, as: :role 
    accepts_nested_attributes_for :user 
end 

買家/新景觀

<%= form_for(@buyer) do |f| %> 
    .... 
    <div class="field"> 
    <%= debug(@buyer.user) %> 
    <% f.fields_for @buyer.user do |u| %> 
     <%= u.text_field :email %> 
    <% end %> 
    </div> 

用戶模型

devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

    belongs_to :role, polymorphic: true 

回答

4

你是不是應該有一個=在fields_for? http://rubydoc.info/docs/rails/ActionView/Helpers/FormHelper:fields_for

E.G.

<%= f.fields_for @buyer.user do |u| %> 
+0

是的,謝謝。我一直在研究這個問題一個多小時,最後決定問。我從來沒有注意到這個消息。這是有道理的,因爲Rails在控制檯中工作是神奇的。大聲笑 – John 2014-09-05 04:20:47

+0

它在控制檯中工作,因爲這是返回值。然而,沒有任何內容告訴ERB打印沒有外部=的輸出。沒問題,但我有同樣的問題:D – Lethjakman 2014-09-05 06:04:24