Контроллер Rails / вопрос маршрутизации - PullRequest
0 голосов
/ 13 июля 2010

Я новичок в RoR и не могу заставить работать одну из моих ролей, не знаете, что происходит? Я определил маршрут в моем файле rout.rb, что-то вроде этого ...

map.connect 'myurl/:someid/:start/:limit', :conditions => { :method => :get }, :controller => 'mycontroller', :action => 'get_data_list'


# method defintion in mycontroller
def get_data_list (someid, start, limit)
   render :text => "Blah"
end

И я использую следующий URL для вызова вышеуказанного маршрута, и он не работает? Любая подсказка? http://host:port/myurl/24/1/10

Это дает следующую ошибку. Выглядит достигнутое действие контроллера, но после этого происходит сбой ??

Обработка Mycontroller # get_data_list (для 127.0.0.1 в 2010-07-12 19:07:45) [GET] Параметры: {"start" => "1", "limit" => "10", "someid" => "24"}

ArgumentError (неверное количество аргументов (0 для 3)):

Ответы [ 2 ]

2 голосов
/ 13 июля 2010

Это то, что вы хотите:

map.connect 'myurl/:someid/:start/:limit', :conditions => { :method => :get }, :controller => 'mycontroller', :action => 'get_data_list'


# method defintion in mycontroller
def get_data_list
   someid = params[:someid]
   start = params[:start]
   limit = params[:limit]

   render :text => "Blah"
end
2 голосов
/ 13 июля 2010

Вам не нужна часть (someid, start, limit) метода в вашем контроллере.Доступ к этим переменным осуществляется через params [: someid] в зависимости от вашего маршрута.ArgumentError вызван тем, что метод контроллера ожидает переменные, которые ему не передаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...