<% form_for [commentable, Comment.new], :action => 'create', :remote => false do |f|%>
<%=f.hidden_field :commentable_id, :value=> commentable.id %><br/>
<%=f.hidden_field :parent_id, :value=>1 %><br/>
还有一个控制器:
def create(commentable)
@commentable = commentable.find(params[:comment][:commentable_id])
如何在for_for中将可评论类型传递给创建操作? 感谢。
答案 0 :(得分:1)
您需要使用
commentable.class
根据您已经做过的事情,您可以使用隐藏字段:
<%=f.hidden_field :commentable_type, :value=> commentable.class %><br/>
然后在控制器中:
@commentable = Object.const_get(params[:comment][:commentable_type]).find(params[:comment][:commentable_id])
答案 1 :(得分:0)
如果您有可评论的模型,则无需将对象显式传递给控制器中的create方法:
def create
@commentable = Commentable.find(params[:comment][:commentable_id])
#more code
end
注意可评论中的大写字母C.