我在我的rails应用程序中使用ratyrate gem进行评级。 有用户可以购买或出售他的书籍。 但是用户无法评价他自己的书(由同一用户上传)。
当我重新加载页面时,它只显示评级。 如何在没有重新加载的情况下显示按钮点击的评级.....
用户模型。
class User < ActiveRecord::Base
ratyrate_rater
end
预订模型。
class Book < ActiveRecord::Base
ratyrate_rateable "price_for_sale"
end
书籍/ index.html.erb。
<div class="row">
<div class="col-md-8">
<table class="cls_book_details" cellspacing="0" cellspacing="0">
<tr>
<%@count =1 %>
<% @books.each do |book| %>
<td id="book_details" style="text align:left;"><%=link_to(image_tag(book.book_photos.first.photo.url(:thumb), :title => 'Click for edit'), edit_book_path(book.id))%><br>
Book Title : <%= book.book_name %><br>
Author : <%= book.book_auther %><br>
<%= rating_for book, "price_for_sale", :enable_half => true %><br/><br>
</td>
<%@count += 1 %>
<%if @count == 4%>
<% @count =1 %>
</tr>
<tr>
<%end %>
<% end %>
</tr>
</table>
</div>
答案 0 :(得分:2)
为此,您应该与您的图书用户一起检查您的登录用户。如果它们相同,那么就这样阻止他
if obj.user.id == current_user.id
flash[:alert] = "You can not rate your own book"
else
obj.rate params[:score].to_f, current_user, params[:dimension]
end
你的第二个问题是使用ajax不重新加载页面。
有关导轨http://edgeguides.rubyonrails.org/working_with_javascript_in_rails.html
中AJAX的详细信息这是一个很好的例子 http://code.tutsplus.com/tutorials/using-unobtrusive-javascript-and-ajax-with-rails-3--net-15243