Где я могу разместить эту вспомогательную функцию, в модели или post_helper или? - PullRequest
1 голос
/ 16 февраля 2011

Все мои контроллеры наследуются от Applicatin_controller.rb, и я добавил:

помощник: все

Я хочу использовать эту функцию в моем представлении, чтобы сделать URL похожими на:

/ запись / некоторые титульный

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

def post_path_for(post)
    post_path(:id => post.title_parameterize)
end

Это рельсы 3.

Ответы [ 4 ]

4 голосов
/ 16 февраля 2011

Разве вы не можете использовать "to_param" в вашей модели, чтобы изменить это без необходимости писать помощника?

http://apidock.com/rails/ActiveRecord/Base/to_param

2 голосов
/ 16 февраля 2011

Это зависит от того, как вы хотите его использовать.
Если он в помощнике, вы можете вызвать <%= post_path_for post %> в своем представлении.
Если это в модели, с небольшими изменениями вы можете назвать его так:1004 *

Хотя второй путь короче, я обычно помещаю такие функции в помощники, чтобы разделить логику и представление.

0 голосов
/ 16 февраля 2011

+ 1 для метода Робина to_param. Используя to_param, вы можете использовать встроенные помощники по URL (например, link_to, url_for, ... изначально)

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

helper_method :post_path_for
0 голосов
/ 16 февраля 2011

Я согласен с Никитой.Это звучит как помощник для меня.Я использую помощники для всего, что предназначено для показа.Похоже, вы хотите, чтобы это было доступно для всех просмотров.Если это так, я бы поместил его в helpers / application_helper.rb

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