Что касается вспомогательного метода? - PullRequest
0 голосов
/ 28 февраля 2011
def admin_options_for_registrar(registrar)
  if registrar.enrollment_application != nil && registrar.enrollment_application.status == "Complete"
    ["Show", "/registrars/"+registrar.id.to_s],["Edit", "/edit_registrars/"+registrar.id.to_s], ["Dashboard", "/homes/"+registrar.enrollment_application.id.to_s], ]
  else
    ["Show", "/registrars/"+registrar.id.to_s],["Edit", "/edit_registrars/"+registrar.id.to_s], ["Dashboard", "/homes/"+registrar.enrollment_application.id.to_s], ] 
  end
end

Этот вспомогательный метод, который я написал в файле модели. Теперь я вызываю этот метод в файле представления таким образом

<% if xyx!= nil? %>
<td><%= select_tag "options", options_for_select([admin_option_for_registrar])
<% end %> 

, и это должно дать мне выпадающий список с правками, шоу и панелью, новыдает ошибку undefined mentod 'admin_options_for_registrar'

Любая помощь ??

1 Ответ

1 голос
/ 28 февраля 2011

Вспомогательные методы должны находиться в файле помощника в «app / helpers», а не в файле модели.

Как написано, похоже, что вы создали метод экземпляра для своей модели, который вы 'пытается вызвать без экземпляра.

Обновление

Существует множество других проблем с самой функцией:

  • кажется, у вас естьсинтаксическая ошибка в вашей функции, есть дополнительные ] в обеих ветвях вашего if
  • обе ветви вашего if идентичны;почему вообще есть if?
  • ваша функция ничего не возвращает;вам нужно ключевое слово return
  • ваша функция принимает аргумент (registrar), но вы не передаете его в
  • ваше заключение функции в дополнительный массив путем вызоваэто с []

Попробуйте заставить работать следующее, а затем добавьте логику ветвления обратно:

def admin_options_for_registrar(registrar)
    [ 
        ["Show", "/registrars/"+registrar.id.to_s],
        ["Edit", "/edit_registrars/"+registrar.id.to_s],
        ["Dashboard", "/homes/"+registrar.enrollment_application.id.to_s]
    ]
end


# pass the registrar object into your function
<%= select_tag "options", options_for_select(admin_option_for_registrar(registrar))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...