Помощники против контроллеров в Rails - PullRequest
0 голосов
/ 21 июля 2011

Я хочу добавить функцию к своему объекту User, поэтому я собирался создать для этого пользовательский контроллер (я использую Devise, поэтому считаю, что это должно добавить функцию к существующему объекту пользователя Devise). Я заметил, что в моем проекте rails есть папка с названием «helpers». Должен ли я поместить туда свои дополнительные функции вместо контроллера? Метод состоит в том, чтобы включить анонимные сессии, что не выходит из коробки с устройством.

Ответы [ 3 ]

4 голосов
/ 21 июля 2011

Тонкие модели контроллера и жира. Старайтесь придерживаться этого принципа при создании приложения rails. положить вашу логику и некоторые расчеты, если это необходимо в моделях. Контроллеры используются для управления тем, какие данные передавать в представления и как отображать данные. Поместите только те методы, которые помогают отображать представления в помощниках. например поместите код для форматирования чисел внутри помощников. Если вы хотите разделить некоторый исходный код между контроллерами и не вписываться в модели, то вы можете создать библиотеку.

2 голосов
/ 21 июля 2011

Если вы хотите добавить метод в класс User, нет, добавьте его в файл user.rb:

class User < ActiveRecord::Base

 def full_name
    # logic
 end

end

Если вам нужен метод, который можно использовать внутри ваших контроллеров и представлений, определите помощника в каталоге helpers и добавьте его туда.

1 голос
/ 21 июля 2011

Тонкий контроллер всегда лучше.Так что да, поместите все, что «помогает» вашему контроллеру / представлению в папку помощника.

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