gpt4 book ai didi

ruby-on-rails - Ruby on Rails before_filter 与 ruby​​ 的初始化

转载 作者:数据小太阳 更新时间:2023-10-29 06:38:52 24 4
gpt4 key购买 nike

只是我的一个想法。下面有什么区别

before_filter

class ApplicationController < ActionController::Base
before_filter :foo
def foo
@mode = Model.new
end
end

ruby 初始化

class ApplicationController < ActionController::Base
def initialize
foo
end

def foo
@mode = Model.new
end
end
  1. ruby 的初始化方法在 rails 中是否按预期工作?
  2. 如果是,那么我们是否可以在必须将过滤器应用于 Controller 中的所有操作的地方使用初始化?

最佳答案

对于每个请求,您确实会得到一个新的 ApplicationController 实例,但是这里最大的禁忌是您试图覆盖 ActionController::Base#initialize 的核心行为 不调用父行为。

ApplicationController < ActionController::Base

def initialize
super # this calls ActionController::Base initialize
init_foo
end

private

def init_foo
@foo = Foo.new
end
end

但这不是惯用的 Rails 行为。他们给你 before_filter 是有原因的;所以使用它。

关于ruby-on-rails - Ruby on Rails before_filter 与 ruby​​ 的初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18576150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com