相关模型的表格未显示

时间:2012-10-26 03:29:58

标签: ruby-on-rails

我正在尝试为相关模型显示一个表单,但是当我在浏览器中查看页面时它没有显示。 如何在我的fields_for中显示字段以显示?

这是我的代码:

用户模型:

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

1 个答案:

答案 0 :(得分:2)

你错过了erb标签中的等号。

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

..应该是..

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

这样可以解决吗?

看起来你的fields_for也可能会混淆单数和复数。用复数websites调用它然后将块视为单个网站是没有意义的。