получить шаблоны внутри помощника - PullRequest
1 голос
/ 03 декабря 2010

Можно ли получить локальный шаблон var из шаблона в помощнике?

test.html.erb:

<% my_test_var = 'wonderful' %>
<%= my_output %> 

test_helper.rb:

def my_output
  return @template[:my_test_var]
end

Конечно, @template не существует. Есть ли способ получить его (не глобально с @).

Привет!

Edit:

Шаблон test.html.erb называется частичным рендерингом с локальной переменной:

render 'test', :locals => { :my_test_var = 'hallo'}

Мне нужна эта переданная переменная в моем помощнике.

Ответы [ 2 ]

2 голосов
/ 03 декабря 2010

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

<% @my_test_var = 'wonderful' %>
<%= my_output %> 

def my_output
  return @my_test_var
end

Это не рекомендуется, хотя. В идеале переменные экземпляра должны быть определены в контроллерах и использоваться в представлениях. Я не уверен, почему вы не можете просто передать переменную вспомогательному методу. Если это не было требованием, тогда я поддерживаю ответ krusty.ar.

0 голосов
/ 03 декабря 2010

Помощники - это нормальные методы, вы можете просто сделать что-то вроде:

<% my_test_var = 'wonderful' %>
<%= my_output(my_test_var) %> 

test_helper.rb:

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