Rails 3 form_for 带有参数的操作

发布于 2024-10-20 02:36:58 字数 443 浏览 4 评论 0原文

<%  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 中的创建操作? 谢谢。

<%  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/>

And a controller:

def create(commentable)
@commentable = commentable.find(params[:comment][:commentable_id])

How I can pass commentable type to a create action in my for_for?
Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

像极了他 2024-10-27 02:36:59

如果您有可注释模型,则无需将对象显式传递给控制器​​中的创建方法:

def create
  @commentable = Commentable.find(params[:comment][:commentable_id])
  #more code
end

请注意可注释中的大写 C。

You don't need to pass a object explicitly to you create method in controller, if you have commentable model:

def create
  @commentable = Commentable.find(params[:comment][:commentable_id])
  #more code
end

Note capital C in Commentable.

七分※倦醒 2024-10-27 02:36:58

您需要使用

commentable.class

按照您已经所做的操作,您可以使用隐藏字段:

<%=f.hidden_field :commentable_type, :value=> commentable.class %><br/>

然后在控制器中:

@commentable = Object.const_get(params[:comment][:commentable_type]).find(params[:comment][:commentable_id])

You need to use

commentable.class

Along the lines of what you already did you can use a hidden field:

<%=f.hidden_field :commentable_type, :value=> commentable.class %><br/>

Then in controller:

@commentable = Object.const_get(params[:comment][:commentable_type]).find(params[:comment][:commentable_id])
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文