Ruby on rails 帮助:向Rails中的现有帖子模型添加评级
我有一个简单的posts模型,title:string和rating:integer,我想添加对posts进行评级的功能。到目前为止我有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
#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}
如果你想要一些只属于你自己的东西,一些不会被滥用的东西,这是有效的。显然,在你的网站上增加评级,让其他人可以无限次地投票,这只是自找麻烦
我建议使用,做评级,甚至有用户业力。作者很好,写了一篇文章