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、ブロックを単数形の Web サイトとして扱うことは意味がありません。

于 2012-10-26T03:55:40.893 に答える