2012-03-25 49 views
0

我已經花了大約5個小時在這個,並繼續回到廣場一...時間要求時間的幫助!Rails 3.2 - 爲什麼simple_form不會爲我的嵌套屬性生成任何標記?

我正在使用Rails 3.2,devise和simple_form,我試圖構建一個允許用戶註冊的表單(電子郵件,密碼)&允許他們創建一個簡單的列表對象 - 全部在一個頁面上。然而,當/ listing /新頁面加載時,我的用戶的嵌套屬性沒有出現在標記上。我找不到原因。

以下是我有:

上市控制器:

def new 
    @listing = Listing.new 

    respond_to do |format| 
    format.html # new.html.erb 
    format.json { render json: @listing } 
    end 
end 

上市型號:

class Listing < ActiveRecord::Base 
    has_one :address 
    belongs_to :category 
    belongs_to :user 

    accepts_nested_attributes_for :address 
    accepts_nested_attributes_for :user 
end 

用戶模式:

class User < ActiveRecord::Base 
    has_many :listings 
    devise :database_authenticatable, :registerable, :validatable 
    attr_accessible :email, :password, :password_confirmation, :remember_me 

end 

新上市形式:

<%= simple_form_for(@listing) do |f| %> 

<%= f.label :listing_type %> 
<%= f.collection_select :listing_type, [["Creative","Creative"]], :first, :last%> 

    <%= f.simple_fields_for :user do |u| %> 
    <%= u.label :email %> 
    <%= u.input_field :email %> 

    <%= u.label_for :password %> 
    <%= u.input_field :password %> 

    <%= u.label_for :password_confirmation %> 
    <%= u.input_field :password_confirmation %> 
    <% end %> 

<% end %> 

我的頭融化看着這個,任何幫助非常感謝!

+0

在列表控制器中,我認爲您必須爲要使用的表單創建/構建新用戶。 – user657823 2012-03-25 20:32:08

回答

1

Railscasts' Nested Model Form將是一個很好的教程。

此外,它聽起來像你想要做的是調用用戶#新,而不是#新的清單。通常你會爲其他東西(列表)的東西(用戶)做一個表格。所以你想爲新用戶製作一個表單,而不是新的列表。如果你如果你想保持它,它是如何走這條路線,然後在用戶#新在你的控制,這樣做

@user = User.new 
@user.listings.build 
.... 

,你也許可以做到

@listing.user.build 

但我我不確定這是否會起作用,因爲你正在按照我上面描述的方向做相反的工作。

+0

這解決了我的問題,謝謝你的幫助! – Jason 2012-03-26 00:48:33

1

您需要一個新的用戶對象。

變化

<%= f.simple_fields_for :user do |u| %> 

<%= f.simple_fields_for :user, User.new do |u| %> 

它應該是工作。

相關問題