我想在我的rails 4应用程序中添加5星评级.大多数资源都需要用户模型.我的情况不同.我的目标网站访问者没有任何身份验证,他们可以投票.我希望网站访问者投票选课.
这是我课程模型的一部分(course.rb)
has_many :ratings
然后rating.rb
belongs_to :course
我希望在索引页面上添加所有课程的评级链接,即course_controller上的索引方法应该处理投票.当然,我可能需要使用评级控制器.我不能把它拉下来.并想出我应该怎么做呢?一个详细的答案将不胜感激.到目前为止,我所做的大部分内容都基于本教程http://paweljaniak.co.za/2013/07/25/5-star-ratings-with-rails/,尽管我还没有成功.
解决方法
您需要在rating表中添加一列,以便评级知道它们属于哪个课程.
rails generate migration add_course_reference_to_ratings course:references score:integer default: 0
您会注意到在迁移中默认分数是0的整数.
迁移数据库rake db:migrate
您的评级需要路由,但您的评级应该只需要更新操作:
resources :ratings,only: :update
在您的课程控制器中,将以下内容添加到索引操作中已有的内容中:
def index @rating = rating.where(comment_id: @comment.id).first unless @rating @rating = rating.create(comment_id: @comment.id,score: 0) end end
该教程中的视图和JavaScript内容应该可以正常工作.请注意,您没有对登录用户进行验证,因此没有任何内容阻止人们发送影响平均值的无限评级.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。