Rails 3,放哪个方法?

时间:2011-05-06 21:49:22

标签: ruby-on-rails ruby-on-rails-3

嘿,有方法叫做投票?如果有人投票,那就看到了。我会把它放在哪里,以便它可以在控制器和视图中使用?首先考虑将它放在Voting Records模型中但我不能在那里调用current_user。那么项目助手,但它也失败了吗?

def voted?(project)
   Project.votes.exists?( :project_id => project.id, :user_id => current_user.id )
end

由于

3 个答案:

答案 0 :(得分:2)

你考虑过这个吗?

class User < ActiveRecord::Base
  has_many :votes # assuming you have this association
  def voted?(project)
    votes.exists?(:project_id => project)
  end
end

现在你可以在控制器中使用以下任何地方(让它们保持瘦),在视图中保持整洁。

current_user.voted?(project)

答案 1 :(得分:1)

你应该把它放在User课程里面。但是:您应该使用用户实例的user_id,而不是current_user

答案 2 :(得分:0)

将它放在模型的助手中..

e.g。 ./app/helpers/yourmodel_helper.rb