рельсы перемещения макетов помощников в своем собственном модуле отдельно от приложения - PullRequest
0 голосов
/ 09 июля 2011

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

Моя проблема связана с суффиксом Helper:

Это работает

# app/helpers
module ApplicationHelper
  include ApplicationLayout
end

# app/helpers/layouts
module ApplicationLayout
  def my_helper
    puts 'my_helper!'
  end
end

Это не

# app/helpers
module ApplicationHelper
  include ApplicationLayoutHelper
end

# app/helpers/layouts
module ApplicationLayoutHelper
  def my_helper
    puts 'my_helper!'
  end
end

Ошибка:

Expected app/helpers/layouts/application_layout_helper.rb to define Layouts::ApplicationLayoutHelper

Итак, я вкладываю это и получаю:

Routing Error undefined method `sub' for nil:NilClass

На самом деле я хотел бы реализовать (высказать свое мнение) app/helpers/layouts/application_helper.rb, но это дает ту же ошибку, поэтому для простоты я изложил этот случай.

Есть предложения по извлечению вспомогательных методов для макетов? Есть ли какое-либо соглашение о конфигурации, которое я мог бы использовать?

Спасибо

1 Ответ

0 голосов
/ 09 июля 2011

Ну, я попробовал то, что вы ожидаете, и это довольно прямо:

в helpers/layouts/application_layout_helper.rb

module Layouts
  module ApplicationLayoutHelper
    def my_helper
      'my_helper!' 
    end
  end
end

в helpers/application_helper.rb

module ApplicationHelper
  include Layouts::ApplicationLayoutHelper
end

Реклама в моемЯ прямо понимаю:

<%= my_helper %>

Я до сих пор не совсем понимаю, что вы будете делать с этими методами.

...