Rails 找不到 module

huison · August 24, 2017 · Last by huison replied at August 25, 2017 · 2458 hits

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

主要代码如下:

我猜不需要加 concerns 这个 module

Reply to prothro

试了,不行😭

Reply to huison

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

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

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

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

7 Floor has deleted
Reply to qqerqqer

不行。

Reply to prothro

ActionController

Reply to huison

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

Reply to prothro

还在找,要疯了~

用的不对

去掉最外层 model extend activesupport::concerns

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

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

Reply to zouyu

require 'active_support/concern'

module UserSession

extend ActiveSupport::Concern

我这样写同样的错😭

Reply to lonre

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

Reply to qqerqqer

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

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

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

Reply to Rei

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

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

Reply to huison

😂 等到真相

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

Reply to teddyinfi

文件命名没问题。

我改成了这样就好了

但是后面又出现新的问题

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

Reply to huison

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

Reply to jeffhappily

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

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

huison closed this topic. 25 Aug 15:53
You need to Sign in before reply, if you don't have an account, please Sign up first.