Rails - два контроллера или добавление действий? - PullRequest
5 голосов
/ 24 апреля 2009

Разработка веб-приложения с разделом администратора и открытым разделом. Такое ощущение, что наличие общедоступного контроллера только для «index» и «show» немного избыточно. Все предложения, которые я прочитал, предлагают пространство имен для администратора, и это нормально. Мне просто интересно, должен ли я иметь один контроллер с дополнительным действием, скажем, list_public или что-то в этом роде.

Я новичок в Rails, так что, возможно, я просто ни о чем не беспокоюсь. Мне просто не нравится идея, что все эти контроллеры, представления, помощники с одинаковыми именами разбросаны по всем каталогам моего проекта.

У кого-нибудь есть понимание этого? Заранее спасибо.

Ответы [ 2 ]

7 голосов
/ 24 апреля 2009

Я бы сказал, что оба контроллера (один общедоступный и один администратор) - лучшее решение.

Теперь вы можете сделать так, чтобы оба контроллера вызывали один и тот же метод, который выполняет связанные действия в действиях.

class MyController < ApplicationController
  def show
    MyModel.do_all_sorts_of_stuff
  end
end

class Admin::MyController < ApplicationController
  def show
    MyModel.do_all_sorts_of_stuff
    # Admin only stuff goes here
  end
end
6 голосов
/ 05 сентября 2009

Как сказал Мэтт, но вы также можете сделать это:

class MyController < ApplicationController
  def show
    MyModel.do_all_sorts_of_stuff
  end
end

class Admin::MyController < MyController
  def show
    super
    # Admin only stuff goes here
  end
end

Это означает, что вы можете просто сосредоточиться на более специализированных случаях для Admin :: MyController, а не на повторении кода.

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