#ruby #ruby-on-rails-3 #api
#ruby #ruby-on-rails-3 #API
Вопрос:
Я создаю API на rails, и мне сказали, что мне нужно расширить область видимости сайта, чтобы у него были версии.
Что-то вроде /1.0/do_something
.
Из того, что я прочитал, я делаю это, создавая routes.rb, который выглядит следующим образом:
API::Application.routes.draw do
scope :path => "1.0", :module => "1.0" do
post "do_something" => "controller#method"
# Everything else. Glob is saved in params[:r]
match '*r', :to => 'errors#e404'
end
end
Но когда я rake routes
, я получаю следующую ошибку:
rake aborted!
missing :action
Что я делаю не так?
Комментарии:
1. Не то, что вы ищете, но grape может упростить задачу.
Ответ №1:
У вас не может быть модуля с именем «1.0» по очевидным причинам. Рассмотрите возможность вызова этого V1
вместо этого.
Комментарии:
1. Если бы вы могли, ссылаться на это было бы проблемой.
1.0.do_method
на самом деле вызывало быFloat#do_method
2. Что, если бы мне нужно было сопоставить этот URL с модулем? Я относительно новичок в rails.
3. @icco: Тогда вы бы сделали
scope :path => "1.0", :module => "V1" do
. Просто.