2013-05-17 2 views
-1

Очень простой Rails вопрос:Как получить имя объекта из аргумента, переданного в вспомогательную функцию?

Я передаю аргумент к вспомогательной функции внутри представления, как это:

<%= function(@project.date) %> 

Как я могу использовать экземпляр переменной @project в этой вспомогательной функции?

def function(date) 
    date.object_name? 
end 

Благодарим за помощь!

+1

Если вам нужно '@ project' переменную внутри' function', просто передать его как argumente вместо '@ project.date'. – toro2k

+0

ОК, я думаю, проблема в том, что мне нужно передать оба параметра: переменная '@ project' ** и ** атрибут (который также может быть другим, чем' date'). Поэтому мне придется передавать их отдельно, например: 'function (@project, @ project.date)'? – Tintin81

+1

Да, если вам нравится, вы можете определить 'function' следующим образом:' def function (project, date = project.date) ', поэтому вам не нужно явно передавать аргумент' date', когда он равен '@ project.date'. – toro2k

ответ

0

Точно как в комментарии.

Используйте его, например, как этот

<%= function(@project, @project.date) %> 

def function(object, date) 
    date if object.class == String 
end 
+0

ОК, спасибо. Я знал это, хотя ;-) Но что, если мне нужно передать переменную экземпляра ** плюс ** атрибут? – Tintin81

+0

Итак, передайте два аргумента, не знаете почему, но если вам действительно нужно, что вы можете это сделать :) – lis2

Смежные вопросы