Как отобразить мой root_url на странице как «example.com», а не «http://example.com"» - PullRequest
1 голос
/ 03 ноября 2011

Я пытаюсь добиться этого URL в моем профиле пользователя более чистым способом: Профиль Адрес: localhost: 3000 / имя пользователя

Вот как я это делаю: <%= link_to "localhost:3000#{root_path}#{@user.username}", @user.username %>

Довольно ужасный способ сделать это. Я мог бы сохранить URL-адрес, который я хочу в переменной в помощнике или контроллере или что-то, например. shorted_root_url = localhost: 3000 / (или имя сайта) и есть другие способы сделать это ...

Но разве нет способа, которым я мог бы просто использовать root_url и немного магии удалить http: // из URL при отображении в профиле пользователя?

Примечание: Я говорю о URL-адресе, отображаемом пользователю на его / ее странице, , а не в атрибуте href тега привязки.

1 Ответ

2 голосов
/ 03 ноября 2011

То, что вы делаете, необычно, правда ... поэтому, вероятно, нет прямого способа сделать это.

вы можете посмотреть в параметрах "url_for", чтобы увидеть, что будет наиболее подходящим,http://apidock.com/rails/ActionView/Helpers/UrlHelper/url_for

У него есть такие параметры, как «протокол» или «путь_только», которые могут помочь вам создать то, что вам нужно.

Для ваших нужд, если все, что вы делаете, это удаление протокола,почему бы просто не создать полный URL и использовать gsub, например:

link_to @user.username, username_url(:username => @user.username).gsub("http://", '')

Вам также понадобится соответствующий маршрут.Я только что догадался о твоей маршрутизации здесь, но скажи, что в Rails 2.3.X у тебя будет что-то вроде:

map.username '/:username', :controller => :users, :action => :show
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...