如何获取作为URL一部分的参数?

时间:2014-09-12 19:15:20

标签: ruby ruby-on-rails-3

我需要从URL中获取参数:

demo.com/market/usdeur

我需要根据URL中的值来定义市场。我可以用:

?market=usdeur

@market = Global[params[:market]]

但不是只有URL可用。我缺少什么?

这是我到目前为止所做的:

 params do
    use :market
  end
  get "/:market" do
    @market =  params[:market]
  end

1 个答案:

答案 0 :(得分:2)

你需要为此添加路由,因为它看起来像Sinatra而不是Rails。你试过吗

get '/market/:market' do
  @market = params[:market]
end

在Rails中,routes.rb

更像是这样
get '/market/:market', to: 'markets#show', as: :market_path

或类似的东西。

现在要访问该路线,您需要访问http://www.example.com/usdeur,当您想要的是http://www.example.com/market/usdeur

更新

如果这是真正的Rails,请将上述路线添加到routes.rb,然后在MarketController添加此

def show
  #I used #find_by_name not exactly sure what attribute usdeur refers to so you might
  #need to change this
  @market = Market.find_by_name(params[:market]) 
end

现在@market将是Market的实例,usdeurname