2014-09-12 3 views
0

мне нужно, чтобы получить из параметров из URL:Как получить параметр, который является частью 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

Как вы думаете, вы можете по-разному формулировать свой вопрос по-другому? Я не совсем уверен, что понимаю. – Anthony

+1

Вы уверены, что это рельсы? Похоже, что синатра – BroiSatse

+0

Я согласен с @BroiSatse и вторым ее заявлением, поскольку я как раз собирался рассказать вам, что вам нужен маршрут, когда вы обновили маршрут стиля «синатра», и в этом случае это будет «get/market /: market' для доступа к нему надлежащим образом. – engineersmnky

ответ

2

Вам нужно добавить маршрут для этого, так как он выглядит как Синатра и не 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

Update

Если это действительно 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.

+0

@engeersmnky - у меня есть маршруты, которые уже добавлены в routes.rb, но статические: 'get '/ market/viabtc'' - я изменил его теперь на вашу версию, и теперь я получаю сообщение об ошибке:' undefined method' get 'for # < MarketController: 0xb3920f28> ' – domi771

+0

@ domi771 Почему у вас есть 'get' в вашем контроллере, это для целей маршрутизации, чтобы отвечать на запросы GET? Если это действительно рельсы, я обновил свой ответ – engineersmnky

+0

большое вам спасибо! теперь работает как шарм :) – domi771

Смежные вопросы