Ruby on Rails:如何调用具有来自另一个动作的参数的动作

时间:2010-07-16 17:57:57

标签: ruby-on-rails

所以我想这样做:

save_to_library(params) if params[:commit] == "lib"

但是save_to_library显然没有任何参数。

如果不采取参数,行动如何获得参数?

(我知道当我直接链接到它时,此操作有效...只是为了简化可用性)

2 个答案:

答案 0 :(得分:5)

您的控制器处理params并通过访问方法使它们可用,它们可供整个控制器使用,而无需在方法参数中传递它。

答案 1 :(得分:3)

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

它应该有用。