Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вызов метода контроллера из шаблона 
:(
    Опции темы
Devider
Дата 25.2.2011, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 24.12.2004

Репутация: нет
Всего: нет



Есть application.html.erb в котором описан шаблон и есть application_controller.rb в котором определен метод foo:
Цитата

class ApplicationController < ActionController::Base
  protect_from_forgery
  def foo
    "foo!"
  end
end

 Пытаюсь вызвать его в шаблоне как <%= foo%>, получаю
Цитата

NameError in Main#index
Showing /home/user/projects/zdrava/app/views/layouts/application.html.erb where line #57 raised:
undefined local variable or method `foo' for #<#:0x00000002e22258>

Причем если сделать foo методом класса (def self.foo) то <%= ApplicationController.foo%> чудесно работает. 
Подскажите пожалуйста, как вызвать метод из шаблона?    


Это сообщение отредактировал(а) Devider - 25.2.2011, 21:08
PM MAIL   Вверх
WarHog
Дата 27.2.2011, 00:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 20.10.2007
Где: Воронеж

Репутация: нет
Всего: 2



Devider, теоретически ты можешь это сделать примерно так

Код

class ApplicationController < ActionController::Base
  protect_from_forgery
end

class MyController < ApplicationController
def foo
  @controller = self
  "foo"
end


и в шаблоне <%= controller.foo %>,
но я бы так категорически не рекомендовал делать  smile
--------------------
PM MAIL   Вверх
Goganchic
Дата 12.5.2011, 14:01 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 678
Регистрация: 18.6.2004

Репутация: нет
Всего: 5



может быть имеет смысл сделать что-то вроде:
Код

class ApplicationController < ActionController::Base
  def foo
    "something"
  end

  helper_method :foo
end


после этого метод foo можно беспроблемно вызывать во вьюхе
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby on Rails"
source777
  • С чего начать? начинаем
  • Документацию смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby On Rails | Следующая тема »


 




[ Время генерации скрипта: 0.0552 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.