Ruby on Rails 3.2.2 を使用していますが、次のコードの長所と短所を知りたいです。
class ApplicationController < ActionController::Base
before_filter :set_current_user_for_models
private
def set_current_user_for_models
User.current_user = User.find(...) # Find the user from cookies.
end
end
class User < ActiveRecord::Base
attr_accessible :current_user
private
def some_method(user)
if User.current_user == user
# Make a thing...
else
# Make another thing...
end
end
end
class Article < ActiveRecord::Base
def some_method(user)
if User.current_user == user
# Make a thing...
else
# Make another thing...
end
end
end
何かアドバイスはありますか?コードをどのように改善しますか?
@Wawa Looの回答に対する@toklandのコメントの後に更新
注: 主な違いは、 、、モデル コールバックUser.current_user
でも更新する必要があることです。このようなもの:after_find
after_create
...
class User < ActiveRecord::Base
attr_accessible :current_user
after_initialize :some_method
private
def some_method
if User.current_user == self
# Make a thing...
else
# Make another thing...
end
end
end
class Article < ActiveRecord::Base
after_destroy :some_method
private
def some_method
if User.current_user == self.user
# Make a thing...
else
# Make another thing...
end
end
end