Rails 找不到 module

huison · 发布于 2017年08月24日 · 最后由 huison 回复于 2017年08月25日 · 637 次阅读
77cf21

大佬们,为什么在application_controller.rb调用user_seesion.rb中的Concerns::UserSession会出错呢? log如下:

主要代码如下:

共收到 29 条回复
105f13

我猜不需要加 concerns 这个module

77cf21
105f13prothro 回复

试了,不行😭

105f13
77cf21huison 回复

😂 如果你确认你两个文件都改了的话,那就不知道是啥原因了。难道你的rails不认concerns 那一套. 嘿嘿

105f13

难道是因为没有 extend ActiveSupport::Concern 😂 我在出瞎主意

Bd3ef4

去掉user_session.rb最外面的module Concerns直接用module UserSession,在ApplicationController里这样引用include UserSession

105f13

楼主,你UserSession 这个module 哪里来的 helper_method 这个方法?

7楼 已删除
77cf21
Bd3ef4qqerqqer 回复

不行。

77cf21
105f13prothro 回复

ActionController

105f13
77cf21huison 回复

好吧...... ,楼主找到原因了?

77cf21
105f13prothro 回复

还在找,要疯了~

A5aa80

require?

17740

用的不对

17740

去掉最外层model extend activesupport::concerns

307

/app/controllers/concerns/app/controllers 相当于同一层级,都在 autoload path 中,所以最外层不需要 module Concerns

Bd3ef4

@huison 你贴一下你的 Rails.application.watchable_args 输出结果,是不是concerns文件夹没有在autoload_paths里?按理说不会啊~~~

77cf21
17740zouyu 回复

require 'active_support/concern'

module UserSession

extend ActiveSupport::Concern

我这样写同样的错😭

77cf21
307lonre 回复

前面他们说的就这样做,我试了,还是同样的错。

77cf21
Bd3ef4qqerqqer 回复

你说的这个输出结果在哪看?

1
  1. 改了之后的完整代码是什么,贴出来啊
  2. 同样的错是什么错,贴出来啊

浪费自己和他人的时间,《提问的智慧》 https://ruby-china.org/topics/24325

77cf21
1Rei 回复

和别人讨论然后又看文档去了,就没来得及没贴图,下次有什么问题贴贴贴😄

77cf21

找到原因了,rails版本不同引起的问题,谢谢大家的指导。

105f13
77cf21huison 回复

😂 等到真相

18855

你rb文件的命名是不是不对啊。。。。

77cf21
18855teddyinfi 回复

文件命名没问题。

77cf21

我改成了这样就好了

但是后面又出现新的问题

我看提示的地方是定义了的

96
77cf21huison 回复

文件命名真的错了,应该是user_session.rb,你打成user_seesion.rb。 require那行是不需要的

77cf21
32jeffhappily 回复

我把文件名改过来了,也去掉了require那行,但是还是提示上面那个error.

77cf21

我自己再去看看,不麻烦大家了。

77cf21 huison 关闭了讨论 08月25日 15:53
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册