Вспомогательный метод для URL? - PullRequest
1 голос
/ 17 марта 2012

У меня есть несколько полей для веб-сайтов социальных сетей, где пользователи могут вводить свое имя пользователя, и оно будет ссылаться на их твиттер, facebook, учетную запись myspace и т. Д. Моя проблема заключается в том, как получить его, чтобы, когда пользователь вводит свое имя пользователя, я мог связываться с ним. их аккаунт.

Вот что у меня есть, и я знаю, что это, вероятно, не правильно. В моем профиле index.html

<%= link_to twitter_url %>

метод вспомогательного профиля

def twitter_url
  return(self.url= "http://twitter.com/#{profile.twitter}/account")
end

В моем профиле контроллер

include ProfilesHelper

Фактическое поле в базе данных называется

twitter_link

Как я могу получить только то имя пользователя, с моей стороны, которое будет делать остальную ссылку на их страницу в Твиттере, Facebook и т. Д.?

1 Ответ

4 голосов
/ 17 марта 2012

Как этот метод должен знать, что такое profile объект, без того, чтобы вы его передавали?

Я представляю, что в вашем контроллере определена переменная @profile.В представлении у вас будет это:

<%= link_to twitter_url %>

А в помощнике это:

def twitter_url
  "http://twitter.com/#{@profile.twitter_link}/account"
end

Обратите внимание, что вам не нужно устанавливать self.url или иметьявный возврат.Это связано с тем, что метод автоматически возвращает String, то есть link_to.

Если вы хотите, чтобы этот метод был в помощнике, который доступен в просто в вашем ProfileController, тогда почему бы не поместить его в ProfileHelper, чтобы он автоматически включался только путем связи по имени?

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