2012-10-26 113 views
0

我想要爲相關模型顯示窗體,但在瀏覽器中查看頁面時不顯示窗體。 如何在我的fields_for中顯示url字段?相關模型的窗體不顯示

這裏是我的代碼:

用戶模型:

class UsersController < ApplicationController 
    def new 
    @user = User.new 
    @user.websites.build 
    end 

    def create 
    @user = User.new(params[:user]) 
    if @user.save 
     redirect_to root_url, :notice => "Signed up!" 
    else 
     render "new" 
    end 
    end 
end 

網站產品型號:

class Website < ActiveRecord::Base 
    belongs_to :user 
end 

用戶查看:

<h1>Sign Up</h1> 

<%= form_for @user do |f| %> 
    <% if @user.errors.any? %> 
... 
    <% end %> 
    <p> 
     <%= f.label :email %><br/> 
     <%= f.text_field :email %> 
    </p> 
    <p> 
     <%= f.label :password %><br/> 
     <%= f.password_field :password %> 
    </p> 
    <p> 
     <%= f.label :password_confirmation %><br/> 
     <%= f.password_field :password_confirmation %> 
    </p> 
    <% f.fields_for :websites do |builder| %> 
     <%= builder.label :url %><br/> 
     <%= builder.text_field :url %> 
    <% end %> 

    <p class="button"><%= f.submit %></p> 
<% end %> 

最終輸出:

finaloutput

回答

2

你錯過了等號你ERB標籤簽署。

<% f.fields_for :websites do |builder| %> 

..應該是..

<%= f.fields_for :websites do |builder| %> 

這是否解決?

看起來你也許會在你的fields_for中混淆單數和複數。用複數websites調用它,然後將該塊視爲單一網站是沒有意義的。