1

我正在尝试构建一个简单的应用程序,用户可以在其中发布内容并将问题附加到帖子(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

问题.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 :users resources :users do resources :posts resources :addresses end views/posts/_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 尝试了不同的方法,但都没有奏效。

非常感谢您对此的任何帮助。

提前致谢。

4

1 回答 1

1

我变了

<%=f.fields_for @post.questions do|question| %>

<%=f.fields_for :questions, @post.questions do|question| %>

它奏效了。

Api 参考:这里http://apidock.com/rails/ActionView/Helpers/FormHelper/fields_for

于 2014-09-04T05:10:06.773 回答