新手问题 看 Rails Tutorial 这一段看得好晕。。。

346617552 · 2012年10月30日 · 最后由 346617552 回复于 2012年10月31日 · 3000 次阅读
module SessionsHelper

    def sign_in(user)
        cookies.permanent[:remember_token] = user.remember_token
        self.current_user = user
    end

    def signed_in?
        !current_user.nil?
    end

    def current_user=(user)
        @current_user = user
    end

    def current_user
        @current_user ||= User.find_by_remember_token(cookies[:remember_token])
    end

    def current_user?(user)
        user == current_user
    end

    def sign_out
        self.current_user = nil
        cookies.delete(:remember_token)
    end
end

判断一个 user 是不是 current_user 的时候,需要被判断的那个 user 不应该是个实例吗?

一下有等号,一下没等号,一下有@一下没@,好晕。。。

8.2.3 Current user

英文一般,可是再加上各种分析。。。就记不住,也就理解不来了。。。

没有@是方法,习惯就好了,简单。

@chenge 哦。。。。好吧。。。。。。

@346617552 你用 rubymine 来看代码,会好很多,不知道是神马的时候,跳转就可以看到了。

@mobiwolf 哦,好的,我试试

@mobiwolf 看了下视频简介,貌似确实很有帮助啊。。。不过只有 30 天试用。

#6 楼 @346617552 你需要的是耐心,如果这一节让你头昏,那就站起来远眺,然后深呼吸,接着坐下来一句一句读懂他。

@nightire 感谢~最近刚好也在看关于我们大脑运作的书。。。说心情越是烦躁,产生的β波就越多,只有心平静下来了,大脑产生α波,才更有利于理解与记忆。 :)

说几个 rails 的约定吧 以等号结尾的方法多是赋值用的;以问号结尾的多是作判断,常返回 boolean;以叹号结尾的多会改变自身的值。 至于有@的那个是实例产量,他也可以叫做别的名字,和 current_user 方法名无关。

@karma 以等号结尾的方法多是赋值用的,这个习惯很重要,和 oc 是一样的,但是其他的语言,用的少

current_user 和 current_user= 分别是 get set 方法,@current_user 是实例变量。其它方法是在他们基础上实现逻辑。这样理解就不会乱了。

@hbin 这么一说。。。全看懂了。。。感谢

需要 登录 后方可回复, 如果你还没有账号请 注册新账号