form_tag 用于创建/更新操作 Rails 3

2024-02-25

我的路线文件如下所示:

scope :locslug/:userslug do  
....
....

post 'rate/:stars' => 'articles#rate' :as => :rate_article
end

我正在尝试生成一个表单,其中包含针对rate文章中的动作。理想情况下,当提交表单时,将创建或更新评级。在其他地方,我发现一篇文章有​​很多评分。

这不起作用:

= form_tag rate_article_path, :method=>'post', :id => "rate_article" do
  =hidden_field_tag :article_id, @article.id
  =hidden_field_tag :stars, 0
  =hiden_field_tag :user, current_user.id

非常感谢您的帮助。谢谢。


Rails 是否显示一些错误?我认为你的路线错误:“rate/:stars”告诉rails在调用rate_article_path时需要一个参数(链接rate_article_path(5)为5星)

你应该有你的路线:

post 'rate/:article_id' => 'articles#rate' :as => :rate_article

您的表格:

= form_tag rate_article_path(@article), :method=>'post', :id => "rate_article" do
  =hidden_field_tag :stars, 0

现在在你的控制器上

def rate
  article = Article.find(params[:article_id])
  article.rates.create(:user => current_user, :stars => params[:stars])
end

(它真的很简单,你应该做一些验证,只是为了了解要做什么)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

form_tag 用于创建/更新操作 Rails 3 的相关文章

随机推荐