我的rails应用程序中有一个嵌套表单。嵌套的字段不是向数据库添加值。
我想在地方信息表中添加一个地址。地址字段嵌套在与Post表对应的表单中。
我只是将完整代码推送到github ... http://goo.gl/wzjLK2
我认为我的帖子控制器#CREATE
中没有做任何事情 def create
@post = Post.new(post_params)
@place = Place.new params[:address]
respond_to do |format|
if @post.save
format.html { redirect_to @post, notice: 'Post was successfully created.' }
format.json { render action: 'show', status: :created, location: @post }
else
format.html { render action: 'new' }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
end
供参考,我的帖子表格:
<%= form_for(@post) do |f| %>
<% if @post.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@post.errors.count, "error") %> prohibited this post from being saved:</h2>
<ul>
<% @post.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :status %><br>
<%= f.text_field :status %>
</div>
<div class="field">
<%= f.label :upload %><br>
<%= f.text_field :upload %>
</div>
<%= f.fields_for @post.place do |p| %>
<div class="field">
<%= p.label :address %><br>
<%= p.text_field :address %>
</div>
<% end %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
我的帖子模型......
class Post < ActiveRecord::Base
belongs_to :place
belongs_to :user
has_many :comments
has_many :commenters, through: :comments, source: :user
accepts_nested_attributes_for :place
def place_for_form
collection = places.where(place_id: id)
collection.any? ? collection : places.build
end
end
非常感谢任何帮助。我已经被困在这两天了。
答案 0 :(得分:0)
运行代码后,我注意到服务器控制台出错:
Unpermitted parameters: place
在
中更改此@post.place
后
<%= f.fields_for @post.place do |p| %>
<div class="field">
<%= p.label :address %><br>
<%= p.text_field :address %>
</div>
<% end %>
到:place
,一切正常。