Ruby on rails RubyonRails:如何调用具有另一个操作的参数的操作
所以我想这样做:Ruby on rails RubyonRails:如何调用具有另一个操作的参数的操作,ruby-on-rails,Ruby On Rails,所以我想这样做: save_to_library(params) if params[:commit] == "lib" 但save_to_库显然不接受任何参数 如果操作不接受参数,如何获取参数 (我知道当我直接链接到它时,这个动作就起作用了……只是试图简化可用性)您的控制器处理参数,并通过accesor方法使它们对您可用,它们可供整个控制器使用,而无需在方法参数中传递。控制器处理参数并通过accesor方法使其可供您使用,它们可供整个控制器使用,而无需在方法参数中传递。参数是一个全局散列,假
save_to_library(params) if params[:commit] == "lib"
但save_to_库显然不接受任何参数
如果操作不接受参数,如何获取参数
(我知道当我直接链接到它时,这个动作就起作用了……只是试图简化可用性)您的控制器处理参数,并通过accesor方法使它们对您可用,它们可供整个控制器使用,而无需在方法参数中传递。控制器处理参数并通过accesor方法使其可供您使用,它们可供整个控制器使用,而无需在方法参数中传递。参数是一个全局散列,假设它是在方法之外定义的:
params = {:commit => "lib"}
def save_to_library
@var = params[:commit]
# etc..
end
如果要执行某些条件操作,可以执行以下操作:
def update
save_to_library if params[:commit] == "lib"
end
def save_to_library
@var = params[:commit] # @var = "lib"
# etc..
end
它应该可以正常工作。params是一个全局散列,想象一下它是在方法之外定义的:
params = {:commit => "lib"}
def save_to_library
@var = params[:commit]
# etc..
end
如果要执行某些条件操作,可以执行以下操作:
def update
save_to_library if params[:commit] == "lib"
end
def save_to_library
@var = params[:commit] # @var = "lib"
# etc..
end
它应该可以正常工作。不是一个真正的全局变量,否则它的名字开头会有一个$,它是一个封装在访问器方法中的实例变量,这就是为什么你可以在没有@的情况下访问它。是的,我应该在这里澄清;它在控制器的作用域内,因此所有操作都可以访问它,而无需传递它。它不是一个真正的全局变量,否则它的名称开头会有一个$,它是一个封装在访问器方法中的实例变量,这就是为什么您可以访问它而不需要@。是的,我应该在这里澄清;它在控制器的范围内,因此所有操作都可以访问它,而无需传递它。