gpt4 book ai didi

ruby-on-rails-3 - 关于如何在 Rails 3 中使用 "thumbs_up"投票 gem 的说明

转载 作者:行者123 更新时间:2023-12-04 01:35:40 27 4
gpt4 key购买 nike

我正在尝试实现 thumbs_up在 Rails 3 应用程序上投票 gem,但是实际实现中的说明不清楚。需要 gem 后 [ gem “拇指向上” ] 并在创建并运行适当的迁移后 [ rails 生成 thumbs_up && rake db:migrate ] 自述文件解释了以下内容:

To cast a vote for a Model you can do the following:
*Shorthand syntax
voter.vote_for(voteable) # Adds a +1 vote
voter.vote_against(voteable) # Adds a -1 vote
voter.vote(voteable, vote) # Adds either a +1 or -1 vote: vote => true (+1), vote => false (-1)

voter.vote_exclusively_for(voteable) # Removes any previous votes by that particular voter, and votes for.
voter.vote_exclusively_against(voteable) # Removes any previous votes by that particular voter, and votes against.*



我一直假设 README 示例中“voter”和“voteable”的使用是应用程序中对象的替代品,但对我来说用法仍然模糊不清。

我的 View 、 Controller 和 routes.rb 文件应该是什么样子的文字示例将是一个巨大的帮助。 我花了几天的时间试图弄清楚这一点!

在我的应用程序中,我有用户对帖子进行投票 - 其中有两种类型 - 事件和链接。使用 调用帖子<%= 渲染:部分 => @posts %> 并且每个单独的帖子使用“ _event.html.erb ”或“ _link.html.erb ”作为其 View - 取决于它是事件还是链接。

最佳答案

希望我能帮到你一点。

生成器应该已经为您创建了一个投票模型。这是持有所有选票的模型,但您可以通过上述方法间接与之交互。

所以,对你来说:

class User < ActiveRecord::Base
acts_as_voter
end

class Post < ActiveRecord::Base
acts_as_voteable
end

这将使您在每个模型中设置 thumbs_up 方法。

然后,例如,如果您在 PostsController 中有一个从您网站上的“向上箭头”链接到的 Controller 操作,您可以为该用户创建该帖子的投票。

像这样的 View :
<%= link_to('vote for this post!', vote_up_post_path(@post), :method => :post) %>

和一个这样的 routes.rb:
resources :posts do
member do
post :vote_up
end
end

最后,在 Controller 中:
class PostsController < ApplicationController
def vote_up
begin
current_user.vote_for(@post = Post.find(params[:id]))
render :nothing => true, :status => 200
rescue ActiveRecord::RecordInvalid
render :nothing => true, :status => 404
end
end
end

关于ruby-on-rails-3 - 关于如何在 Rails 3 中使用 "thumbs_up"投票 gem 的说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4907744/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com