我正在尝试构建一个简单的应用程序,用户可以发布内容并将问题附加到帖子(post.questions)。
我在embeds_many场景中显示问题时出现问题。虽然我在PostsController #new方法中创建了多个问题,但渲染后的html只显示了一个问题。
我正在使用rails4 / mongoid / mongodb。
Post.rb:
class Post
include Mongoid::Document
include Mongoid::Timestamps
field :title, type: String
field :body, type: String
embeds_many :post_replies
embeds_many :questions
belongs_to :poster, class_name: "User"
accepts_nested_attributes_for :questions
end
Quesion.rb。
class Question
include Mongoid::Document
include Mongoid::Timestamps
field :q
embedded_in :post
end
PostsController.rb
class PostsController < ApplicationController
def new
@post = Post.new
3.times{
post.questions.build
}
end
def post_params
params.require(:post).permit(:title, :body, questions_attributes: [:id, :q, :_destroy])
end
end #end controller
的routes.rb devise_for:用户 资源:用户做的 资源:帖子 资源:地址 结束 视图/帖/ _form.html.erb
<%= form_for([current_user, @post], :html => { :class => "form-horizontal" }) do |f| %>
-
-
<%=f.fields_for @post.questions do|question| %>
<%= question.text_field :q, :placeholder =>'question', :class => "form-control" %>
<%end%>
-
-
<%end%>
我希望上面的字段显示3个问题,但它只显示一个问题。我为fields_for尝试了不同的方法,但都没有。
非常感谢任何帮助。
提前致谢。
答案 0 :(得分:0)
我改变了
<%=f.fields_for @post.questions do|question| %>
到
<%=f.fields_for :questions, @post.questions do|question| %>
并且有效。
Api ref:这里http://apidock.com/rails/ActionView/Helpers/FormHelper/fields_for