我正在尝试为相关模型显示一个表单,但是当我在浏览器中查看页面时它没有显示。 如何在我的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 %>
最终输出:
答案 0 :(得分:2)
你错过了erb标签中的等号。
<% f.fields_for :websites do |builder| %>
..应该是..
<%= f.fields_for :websites do |builder| %>
这样可以解决吗?
看起来你的fields_for
也可能会混淆单数和复数。用复数websites
调用它然后将块视为单个网站是没有意义的。