Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 创建/更新action rails 3的表单标签_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 3 创建/更新action rails 3的表单标签

Ruby on rails 3 创建/更新action rails 3的表单标签,ruby-on-rails-3,Ruby On Rails 3,我的路由文件如下所示: scope :locslug/:userslug do .... .... post 'rate/:stars' => 'articles#rate' :as => :rate_article end 我正在尝试生成一个表单,其中包含一个针对文章中比率操作的操作。理想情况下,提交表单时,将创建或更新评级。在其他地方,我发现一篇文章有很多收视率 这不起作用: = form_tag rate_article_path, :method=>'post'

我的路由文件如下所示:

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

post 'rate/:stars' => 'articles#rate' :as => :rate_article
end
我正在尝试生成一个表单,其中包含一个针对文章中比率操作的操作。理想情况下,提交表单时,将创建或更新评级。在其他地方,我发现一篇文章有很多收视率

这不起作用:

= 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\u article\u path时需要一个参数(5星的链接rate\u article\u path(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

(这真的很简单,你应该做一些验证,只是想知道该做什么)

我确实改变了路线,删除了:stars变量。但是我的问题发生了,因为我试图使用app.js文件中的一篇ajax文章。出于某种原因,当我这样做的时候,我贴到的动作总是错误的。在视图中,我将其替换为:remote=>true,并且一切都按照我的预期工作。谢谢你的帮助。