рельсы 3.0.3 встроенные представления - PullRequest
0 голосов
/ 31 января 2011

Этот вопрос является прямым результатом моего невежества по отношению к рельсам и, следовательно, ужасных поисковых запросов. Я пытаюсь разместить сортируемую таблицу на каждой странице моего приложения. В основном список инвентаря должен появляться везде. Однако на странице профиля пользователя я получаю неопределенную ошибку метода `sort_by`.

Вот как это настроено, у меня есть два вспомогательных метода sort_by и sort_direction в контроллере инвентаря. Затем у меня есть вспомогательный метод в приложении helper, который создает ссылку:

  def sortable(column, title = nil, css_class = "sort")
    title ||= column.titleize
    css_class = column == sort_by ? css_class + " current #{sort_direction}" : css_class
    direction = column == sort_by && sort_direction == "asc" ? "desc" : "asc"
    link_to title, params.merge(:sort => column, :direction => direction, :page => nil), {:class => css_class}
  end

Я знаю, что моя проблема в том, что я использую sort_by и sort_direction на пользовательском контроллере. Но как мне получить к ним доступ через контроллер инвентаря?

1 Ответ

0 голосов
/ 31 января 2011

Переместите эти два метода в ApplicationController и добавьте строку helper_method :sort_by, :sort_direction в свой контроллер (которая предоставит эти методы вашему представлению в качестве вспомогательных методов).Все контроллеры наследуются от него, поэтому любые методы там будут доступны для всех контроллеров, и добавление helper_method открывает их для всех представлений.

При этом, если вы не используете эти методы в действиях контроллера,переведите их в помощника.

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