0
我想在我的食谱应用程序中添加一个星级评分系统,每个用户可以评价一次不同的食谱。我已经读过Jquery的速度,这是一个很好的开始。 http://www.radioactivethinking.com/rateit/example/example.htm我的问题是关于如何得到这个在轨道3的工作,我最初的想法是Rails 3和Jquery的rateit插件
设置的评级模型,它看起来像这样
class Rating < ActiveRecord::Base
has_many :recipes
has_many :users
attr_accessible :recipe_id, :user_id, :number
validates_uniqueness_of :user_id, :scope => :recipe_id
end
建立模型关系
class Recipe < ActiveRecord::Base
has_many :ratings
end
class User < ActiveRecord::Base
has_many :ratings
end
控制器
class RatingsController < ApplicationController
def new
@rating = Rating.new
end
def create
@rating = Rating.new(params[:rating])
if @rating.save
redirect_to my_recipes_path, :notice => "Thanks #{current_user.name} Recipe successfully Rated."
end
正如前面提到的,我正在思考使用jQuery插件rateit,它可以使用HTML范围输入的
<input type="range" min="0" max="5" value="0" step="0.5" id="backing2">
<div class="rateit" data-rateit-backingfld="#backing2"></div>
我的想法是,提交星级到我需要提交的值作为隐藏域的模型,类似的东西
<%= form_for @rating do |f| %>
<%= f.hidden_field :user_id, :value => current_user.id %>
<%= f.hidden_field :recipe_id, :value => recipe.id %>
<%= f.submit 'Rate Recipe' %>
<% end %>
我不知道的是如何将给定值赋予模型。我想通过Ajax请求来实现这一点。
我的关联可能不正确,因为我的许多代码可能?从未接触过走近这样的事情,我希望有人能指出我在正确的directoion或者至少指出我的错误,到目前为止
感谢
宁愿不要使用宝石,想要充分理解这个过程与Ajax的结合,以及如何点击说第三颗星,并将值3发布到模型 – Richlewis 2013-02-18 13:28:51