2013-07-24 2 views
0

Я использую rails3, и я хочу, чтобы иметь маршрут префикс, как показано ниже:Приставка паров рельсов маршрутов

У меня есть следующий в моих маршрутах:

require 'resque/server' 

Woofound::Application.routes.draw do 
    scope "/:my_param" do 
    resource :users 
    end 
end 

А потом я следующий в моем контроллер приложения:

class ApplicationController < ActionController::Base 
    before_filter :check_param 

    private 
    def check_param 
    unless Myobject.find_by_param(param[:my_param]) 
     raise "You must add this param" 
    end 
    end 
end 

И тогда в моих маршрутах я хочу, чтобы иметь возможность получить доступ к user_path (@user) без необходимости делать

user_path(:param_for_route_name_spacing, @user) 

Если вам нужна дополнительная ясность, дайте мне знать.

И, короче говоря, я хочу иметь параметризованный префикс для моего маршрута с параметром, автоматически передаваемым обратно в параметризованное пространство имен без необходимости добавлять его в качестве первого аргумента в путь объекта am.

ответ

0

попробуйте

class ApplicationController < ActionController::Base 
    def user_path(user) 
    super(:param_for_route_name_spacing, user) 
    end 
end 
+0

теперь я получаю эту ошибку супер: нет методы суперкласса 'user_path' –

+0

ОК, файл маршрутов должен иметь' ресурсов: users' не 'ресурс: users' и называет' helper_method: user_path' в контроллере. – bgates

+0

Я случайно поставил: as =>: something_else в своем маршруте Ваше исправление идеально, большое спасибо –

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