如何在#new中显示多态注释字段?

我将此添加到我的估价_form中:

    comment %>  

然后,当我点击“添加评论”时,我只给了一个空白区域。 我正在尝试将多态注释与nested_attributes集成。

     Comment   

valuation.rb

 has_many :comments, as: :commentable accepts_nested_attributes_for :comments, :reject_if => :all_blank, :allow_destroy => true 

comment.rb

 class Comment < ActiveRecord::Base include PublicActivity::Common belongs_to :commentable, polymorphic: true end 

控制器

 class CommentsController < ApplicationController before_action :load_commentable before_action :set_comment, only: [:show, :edit, :update, :destroy] before_action :logged_in_user, only: [:create, :destroy] def index @comments = @commentable.comments end def new @comment = @commentable.comments.new end def create @comment = @commentable.comments.new(comment_params) if @comment.save @comment.create_activity :create, owner: current_user redirect_to @commentable, notice: "comment created." else render :new end end def edit @comment = current_user.comments.find(params[:id]) end def update @comment = current_user.comments.find(params[:id]) if @comment.update_attributes(comment_params) redirect_to @commentable, notice: "Comment was updated." else render :edit end end def destroy @comment = current_user.comments.find(params[:id]) @comment.destroy @comment.create_activity :destroy, owner: current_user redirect_to @commentable, notice: "comment destroyed." end private def set_comment @comment = Comment.find(params[:id]) end def load_commentable resource, id = request.path.split('/')[1, 2] @commentable = resource.singularize.classify.constantize.find(id) end def comment_params params.require(:comment).permit(:content, :commentable) end end 

 class ValuationsController < ApplicationController before_action :set_valuation, only: [:show, :edit, :update, :destroy] before_action :logged_in_user, only: [:create, :destroy] def index if params[:tag] @valuations = Valuation.tagged_with(params[:tag]) else @valuations = Valuation.order('RANDOM()') end end def show @valuation = Valuation.find(params[:id]) @commentable = @valuation @comments = @commentable.comments @comment = Comment.new end def new @valuation = current_user.valuations.build @commentable = @valuation @comments = @commentable.comments @comment = Comment.new end def edit end def create @valuation = current_user.valuations.build(valuation_params) if @valuation.save redirect_to @valuation, notice: 'Value was successfully created' else @feed_items = [] render 'pages/home' end end def update if @valuation.update(valuation_params) redirect_to @valuation, notice: 'Value was successfully updated' else render action: 'edit' end end def destroy @valuation.destroy redirect_to valuations_url end private def set_valuation @valuation = Valuation.find(params[:id]) end def correct_user @valuation = current_user.valuations.find_by(id: params[:id]) redirect_to valuations_path, notice: "Not authorized to edit this valuation" if @valuation.nil? end def valuation_params params.require(:valuation).permit(:name, :private_submit, :tag_list, :content, :commentable, :comment) end end 

非常感谢你的帮助。 我被启发从这个问题中提出这个问题: Valuations#new中的ActionController :: UrlGenerationError