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 %>

最终输出:

最终输出

4

1 回答 1

2

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

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

.. 应该 ..

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

这能解决吗?

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

于 2012-10-26T03:55:40.893 回答