使用回调方法为类变量设置值的set_any方法(私有)是否可行?
示例:
NameController < ApplicationController
before_action :set_number, only: :any_number
def any_numer
@number
end
private
set_number
@number = 10 #Any number
end
end
谢谢!
我不确定问题到底是什么...但是看起来您正在尝试创建类的新实例,并让实例变量@number
始终以10
的值开头。您应该如何使用它,但是更多的Ruby方法是使用Model类,该类具有#initialize
方法,该方法将@number
设置为10
。这样,每次从类实例化一个新实例时,模型都会处理该逻辑。
例如...
class Whatever
attr_accessor :number
def initialize
@number = 10
end
# other class and instance methods ........
end
希望有帮助!
这是我对您要执行的操作的解释。请注意,它是非常主观的,可以由许多其他开发人员以其他多种方式实现。
# /app/controllers/names_controller.rb
class NamesController < ApplicationController # controllers are classes in Rails (assuming you're using Ruby on Rails)
helper_method :number, only: %i(:any_number) # this exposes it to the controller action or any attached views should you need to render something
def show # Rails uses this name by convention for GET endpoints
render(
:status => 200,
:text => number # reference the method, not the instance variable
)
end
private # this should left-align with the top-level class
def number
@number ||= fetch_number # memoizes/caches the result of fetch_number
end
def fetch_number
10 # would usually be something more complex than this literal return value
end
end