- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当我从像 UsersController < ApplicationController 这样的继承 Controller 调用位于 ApplicationController 内部的方法时,该方法的作用域是什么? ApplicationController 还是 UsersController?
假设我有那些文件
class ApplicationController < ActionController::Base
def method1
method2
end
def method2
...
end
end
class UsersController < ApplicationController
# call method1 from here
def method2
...
end
end
正如您在这里看到的,我从 UsersController 调用方法 1(位于 appcontroller 中);method1 会调用 UsersController 内部还是 ApplicationController 内部的 method2?
谢谢!
最佳答案
新类 UsersController
继承了原始类 ApplicationController
的所有方法。当您在 UsersController
中def
一个新方法时,它会替换父 Controller 中的定义,但任何其他方法仍然存在,并在调用时进行评估。
因此,UsersController#method1
将调用 UsersController#method2
。任何时候调用方法时,ruby 都会从当前上下文向上搜索堆栈,直到找到匹配的方法:
1) 它检查 UsersController#method1
,什么也没找到
2) 它检查ApplicationController#method1
,并执行它,调用#method2
3) 它检查找到并执行的 UsersController#method2
。
关于ruby-on-rails - ApplicationController 方法的 Rails 作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16658696/
我正在使用 Ember App Kit (EAK)。 当我加载我的索引页面时,Ember Inspector/Chrome Dev Tools 控制台显示这一行: *generated -> cont
在应用程序 Controller 中,我有几个方法可以处理请求的 Controller 和操作名称。 为了遵循 DRY 原则,我想用这些参数定义共享变量。 class ApplicationContr
每当两个并发的 HTTP 请求进入我的 Rails 应用时,第二个总是返回以下错误: A copy of ApplicationController has been removed from the
ApplicationController是否继承自DeviseController? 否则如何设计方法在 ApplicationController 中可用。 最佳答案 ApplicationCon
在我的 ApplicationController 中,我有一个方法定义为辅助方法: helper_method :some_method_here 我如何在 RSpec 中测试 Applicatio
如果我在 application_controller 中: def calendar_sidebar @missed_dates_by_date = current_user.misse
我需要对 Controller 中的回调顺序进行更精细的控制。目前 Rails 只允许您使用 append|prepend_before|after_action,但如果您想添加一个带有专用回调的模块
我在ApplicationController中定义了方法 class ApplicationController < ActionController::Base helper_method
我在 rackspace 云服务器上在线设置了一个简单的应用程序,但我从 phusion passenger 收到以下错误消息: uninitialized constant ApplicationC
我正在使用 Rails 5.2、Pundit 1.1 和 rails_admin 1.2 我的 application_controller.rb 中有以下内容: class ApplicationC
我正在尝试使用 rspec 来测试我的 ApplicationController 中的过滤器。 在 spec/controllers/application_controller_spec.rb我有
我是 Rails 的新手,我不明白为什么会出现此错误: undefined local variable or method `with' for ApplicationController:Clas
我的问题涉及以下开发堆栈: rails 3.2.1 德雷珀 0.14 祖先 1.2.5 我想要做的是,将导航传送到我的布局。所以我在 ApplicationController 中定义了一个 befo
我想我会想出一个巧妙的方法来在 Rails 3.x gem 中扩展 ApplicationController。 在我的 gem lib/my_namespace/my_controller.rb ,
我正在使用 Ember.js,并且在渲染的模板部分中从我的 ApplicationController 访问方法时遇到问题。 在我的布局中,我有以下内容 {{ render common/na
在Rails中,我在ApplicationController中添加了几个rescue_from处理程序。他们的工作正常,除了看起来像 session 丢失,因为下一个请求始终被重定向到登录页面。 A
假设我有两个模型:客户和产品 Client的“username”和“email”应该是“unique index”,作为Product的“serialnumber” 当用户在作为唯一索引的表单字段上键
当我从像 UsersController < ApplicationController 这样的继承 Controller 调用位于 ApplicationController 内部的方法时,该方法的
我正在尝试升级到 Rails 4 beta 1,但遇到了一些问题。 简而言之,这就是我的应用程序 Controller 的样子。 class ApplicationController ': unde
我需要在 Rspec/capybara 请求规范中 stub current_user 方法的响应。该方法在 ApplicationController 中定义并使用 helper_method。该方
我是一名优秀的程序员,十分优秀!