LINUX.ORG.RU

[rails] вызов хелпера


0

1

Изучаю RoR, встала необходимость воспользоваться определенным Хелпером, в произвольном контроллере. Погуглил, в контроллер пишу следующее:

class AnalyticsController < ApplicationController
helper AnalyticsFieldsHelper
  def index
    custom_field_label_tag(params[:name], params[:val]) # Ошибка: NoMethodError in AnalyticsController#index. undefined method `custom_field_label_tag' for #<AnalyticsController:0xb58d40cc>
    AnalyticsFieldsHelpers::custom_field_label_tag(params[:name], params[:val]) # NoMethodError in AnalyticsController#index. uninitialized constant AnalyticsController::AnalyticsFieldsHelpers
  end
end
содержание хелпера:
module AnalyticsFieldsHelper
  def custom_field_label_tag(name, custom_value)
    ....
  end
end
Собственно, вопрос, ЧЯДНТ? :)

Deleted

На всякий случай, уточню пути к файлам:

/app/controller/analytics_controller.rb
/app/helper/analytics_fields_helper.rb
И, возможно, непонятно описал, уточню, когда пишу так:
custom_field_label_tag(params[:name], params[:val])
Появляется ошибка:

NoMethodError in AnalyticsController#index
undefined method `custom_field_label_tag' for #<AnalyticsController:0xb58d40cc>

Когда пишу так:

AnalyticsFieldsHelpers::custom_field_label_tag(params[:name], params[:val])
Получаю следующее:

NoMethodError in AnalyticsController#index
uninitialized constant AnalyticsController::AnalyticsFieldsHelpers

Второй вариант явно не правильный, это и я понимаю. Вопрос в том, как правильно вызвать хэлпер

Deleted
()
Ответ на: комментарий от Deleted

Фикс. Папки у меня верные, во множественном числе:

/app/controllers/analytics_controller.rb 
/app/helpers/analytics_fields_helper.rb

Deleted
()

Нужно так:

 
class AnalyticsController < ApplicationController 
  include AnalyticsFieldsHelper 
  def index 
    custom_field_label_tag(params[:name], params[:val]) 
  end 
end 

Вообще сначала стоит получше изучить сам Ruby.

tarc
()
Ответ на: комментарий от tarc

Спасибо огромное!
Я на работе ковыряю рельсы, дома на выходных ruby с qt :)

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.