2015-05-29 2 views
0

Я хотел бы настроить мой путь помощников в Rails 4.Rails 4 пользовательских хелперы путь

У меня есть сайт Site5 (который использует сервер Apache) с нескольких поддоменов. Я переписал правила в моем файле .htaccess, который добавляет имя папки в URL. Например

cs1337.mysite.com/login 

переписывается

cs1337.mysite.com/cs1337/login 

В routes.rb, я добавил в сферу routes.rb:

scope '/cs1337' do 
    get '/login', to: 'sessions#new', as: :login 
    # etc. 
end 

, который дает мне правильную маршрутизацию. Все работает, но раздражает то, что все мои пути помощники имеют «/ cs1337» префикс, который не является необходимым, так как .htaccess правила перезаписи добавить его обратно. Например,

login_path # => /cs1337/login 

когда только

login_path # => /login 

необходим.

Я хотел бы, чтобы переопределить все помощники пути сдирать префикс, используя что-то вроде

def <override all path helpers> 
    path = super 
    path.gsub(%r{^/cs1337}, '') 
end 

Я знаю путь хелперы динамически, но я не могу понять, где начать .. Я даже не могу найти, на каком модуле создаются помощники пути.

Спасибо за любую помощь, которую вы можете предложить!

ответ

0

Короткий ответ: Нет, насколько я могу судить.

Я не мог найти ничего, что позволит вам маршрутизировать перехваты Rails, отличные от пути, который дают вам помощники. Я не думаю, что Rails отлично справляется с перезаписью .htaccess.

Вам нужно, чтобы имя папки находилось на пути? Если нет, я бы удалил scope '/cs1337' do и использовал что-то вроде this StackOverflow post для выполнения определенных для домена маршрутов.

Если вам это нужно, я рекомендую быть в порядке с конечным пользователем, видя «cs1337.mysite.com/cs1337/path».

+0

DoubleFelix, Да, мне нужно имя папки в пути. Я должен использовать символическую ссылку в моем каталоге 'public_html', чтобы ссылаться на базовую папку для моего приложения rails. –

+0

Извините, но я думаю, что ваша установка требует неприятностей. Ваша ситуация с маршрутизацией действительно сложна, в какой-то степени я не думаю, что рельсы могут компенсировать. – DoubleFelix