我想知道是否有更好的方法在rails中编写这段代码。
def self.get_user_id(name)
current_user_id = User.current.id
user_id = User.where("name=?",name).id
admin = check_admin(current_user_id)
if (admin == TRUE || user_id == current_user_id)
istrue = user_id
else
istrue = FALSE
end
return istrue
end
答案 0 :(得分:0)
更为惯用的写作方式如下:
def self.get_user(name)
current_user = User.current
user = User.where("name = ?", name)
return nil unless user == current_user
return nil unless current_user.admin?
user
end
请注意,我更改了它以返回用户对象而不是其id,这比在大多数时间传递id更好。此外,按照惯例,如果您想要“无”或“无效”,最好返回nil
而不是false
。
要采用这段代码,您还需要为名为User
的{{1}}实现一个实例方法,该方法与您之前的admin?
方法基本相同。这使得您的代码更加面向对象,这是Ruby中更受欢迎的样式。