我需要从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
答案 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
的实例,usdeur
是name
。