我正在构建我的第一个gem
。我在尝试加载视图时尝试访问所有参数,然后将它们分配给我的模块方法。
当我访问appurl.com?name=elijah
然后运行MyGem.name
它应该返回elijah
这是我的宝石
#my_gem/lib/my_gem.rb
module MyGem
def self.name
params[:name]
end
end
我如何访问我从哪里调用我的宝石的参数?我是否必须将其作为变量传递?
答案 0 :(得分:1)
是的,你必须将它们传递给宝石中的某些东西。您的gem无法在params
中看到ActionController
方法。
你想要完成什么?我们或许能够提出更好的方法。
如果您只是尝试,请尝试以下方法:
module MyGem
class Something
def initialize(params)
@params = params
end
def method_missing(symbol, *ids)
@params[symbol] || super
end
end
end
如果它们作为哈希中的符号可用,则会从提供给它的params哈希中提取项目。所以你可以这样做:
x = MyGem::Something.new(params)
x.first_name
=> 'xyz'
x.last_name
=> 'abc'