我在我的书模型中有这个方法,但现在我意识到我在类别模型中也需要这个:
def proper_user?(logged_in_user)
return false unless logged_in_user.is_a? User
user == logged_in_user
end
我现在在书籍模型和类别模型中重复了这种方法。类别和书籍都有belongs_to:user,并且两者在表格中都有user_id:integer。我只是想把它提取到哪里,所以我可以干它。
我试图把这个方法放在application_controller.rb中,但它说未定义的方法`proper_user?'对于#
由于
杰夫
答案 0 :(得分:1)
我认为您希望能够像这样调用此方法:
book.proper_user?(current_user)
因此,最好在每个模型中定义它,而不是在User中定义它。最好通过将模块与方法混合来实现:
module UserMethods
def proper_user?(logged_in_user)
# ... etc ...
end
end
并将其包含在每个模型中:
class Book < AR::Base
include UserMethods
class Category < AR::Base
include UserMethods
模块可以放在config / initializers中的源文件中,或者你可以将它放在别处并在config / environment.rb中更改config.autoload_paths
以指向该位置。
答案 1 :(得分:0)
由于它与用户模型有关,为什么不把它放在那里?