Rails 找不到 module

huison · 2017年08月24日 · 最后由 huison 回复于 2017年08月25日 · 2471 次阅读

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

主要代码如下:

我猜不需要加 concerns 这个 module

prothro 回复

试了,不行😭

huison 回复

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

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

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

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

7 楼 已删除
qqerqqer 回复

不行。

prothro 回复

ActionController

huison 回复

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

prothro 回复

还在找,要疯了~

用的不对

去掉最外层 model extend activesupport::concerns

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

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

zouyu 回复

require 'active_support/concern'

module UserSession

extend ActiveSupport::Concern

我这样写同样的错😭

lonre 回复

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

qqerqqer 回复

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

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

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

Rei 回复

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

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

huison 回复

😂 等到真相

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

teddyinfi 回复

文件命名没问题。

我改成了这样就好了

但是后面又出现新的问题

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

huison 回复

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

jeffhappily 回复

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

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

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