Rails 关于 helper 里定义的方法的引用问题。

limkurn · 2013年01月30日 · 最后由 leonworld 回复于 2013年01月31日 · 2994 次阅读

我在 sessions_helper.rb 中定义了一方法: signed_in?
然后我在 users_controller.rb 里中的定义的一个方法中引用了这个方法。但是运行是显示 nomethoderror。所以想问下如何使这种引用有效,是否需要 require?

把这个方法放在 application_controller.rb 里

#1 楼 @lidashuang 我再 application_helper.rb 中定义了还是出现了这个问题

application_helper.rb sessions_helper.rb 里的方法只能在 view 上用。

#3 楼 @lidashuang 再 user_model 中再定义一遍?

users_controller 的父类是啥?

@lidashuang @ichord 主要是 users index 页面加载的时候出现这问题。

#5 楼 @ichord activerecord::base

将其放在 application helper 然后, include ApplicationHelper ,或者你 include 单个也行

#9 楼 @Daniel_Xu 直接 include ‘sessions_helper’ 不是更直接 ?

这个看自己,如果方法少的话,这一个,那一个,都 include 了,比较乱

#11 楼 @Daniel_Xu include 后的路径是这样的?

定义在 application 控制器,然后 helper_method :method_name ,就可以 view 使用。

我觉得 helper 里面尽量还是处理 html 内容就可以,从你的字面上理解 signed_in 这样的业务逻辑判断要么放 controller 里面要么放 model 里面。 include 的方式似乎会让你的代码出现更多耦合。 个人愚见

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