Ruby on rails 帮助:向Rails中的现有帖子模型添加评级

Ruby on rails 帮助:向Rails中的现有帖子模型添加评级,ruby-on-rails,rating,Ruby On Rails,Rating,我有一个简单的posts模型,title:string和rating:integer,我想添加对posts进行评级的功能。到目前为止我有 #Post controller def increase @post = Post.find(params[:id]) @post.increment! :rating flash[:notice] = "Thanks for your rating." redirect_to @post end #Post show <%= link

我有一个简单的posts模型,title:string和rating:integer,我想添加对posts进行评级的功能。到目前为止我有

#Post controller   
def increase
 @post = Post.find(params[:id])
 @post.increment! :rating
 flash[:notice] = "Thanks for your rating."
 redirect_to @post
end

#Post show
<%= link_to "Rating", increase_post_path %>

#Routes
map.resources :posts, :member => { :increase => :put }
#Post控制器
def增加
@post=post.find(参数[:id])
@post.increment!:评级
flash[:notice]=“感谢您的评分。”
将_重定向到@post
结束
#后期演出
#路线
map.resources:posts,:member=>{:increase=>:put}

当我点击评级,我得到未知的行动。我可以在添加@post.increment!时提高评级:评级要更新,但不是在我创建自己的方法时更新。有什么建议吗?

您需要将操作添加到
routes.rb
文件中。有关详细信息,请参阅。

,如果您有标准路线:

map.resources :posts
您应将其替换为:

map.resources :posts, :member => { :increase => :put }

这将为你的应用程序创建“增加发布路径”和“放置”方法。

如果有人感兴趣,这是我的解决方案。谢谢你们的帮助

#Views
<%= link_to post.rating, increase_post_path(post) %>

#Controller
def increase
  @post = Post.find(params[:id]).increment!(:rating)
  flash[:notice] = "Thanks for rating"
  redirect_to posts_url
end

#Routes
map.resources :posts, :member => { :increase => :put }
#视图
#控制器
def增加
@post=post.find(参数[:id])。增量!(:评级)
flash[:notice]=“感谢评分”
将\u重定向到帖子\u url
结束
#路线
map.resources:posts,:member=>{:increase=>:put}
如果你想要一些只属于你自己的东西,一些不会被滥用的东西,这是有效的。显然,在你的网站上增加评级,让其他人可以无限次地投票,这只是自找麻烦

我建议使用,做评级,甚至有用户业力。作者很好,写了一篇文章