module Foo
attr_accessor :val
end
module Bar
def bar
val = 50
end
end
class FooBar
include Foo
include Bar
end
fb = FooBar.new
puts fb.bar # 50
puts fb.val # nil
我想从 Bar 内部更改 Foo 的“val”值。
正如您所知,我正在尝试这样做,因为我想通过 Clearance 中的 Facebook Canvas 应用程序添加用户身份验证(0.8.2(旧,我知道))。我要更改的变量是https://github.com/thoughtbot/clearance/blob/b8ccca00d91cb336e044b76b5c6ae1d8de9d2d8d/lib/clearance/authentication.rb#L25。
该模块包含在 ApplicationController 中,之后我将包含另一个模块(FacebookAuthenticationHelper),它执行类似的操作
def authenticate_facebook
current_user ||= facebook_user if coming_from_facebook?
end
我也很想知道是否有更好的方法来做到这一点。我没有使用 OAuth,我只是将 Facebook 的 user_id 从 signed_request 发送到我的应用程序保存到我的数据库中。
谢谢!