ОК, это работает, но я чувствую, что есть лучший способ сделать это в Rails ... У меня есть домашняя страница, которая, если вы еще не вошли в систему, не в настоящее время что-либо вытягиваетот любой модели или контроллера.Он существует по адресу /pages/home.html.erb
. На этой странице я хочу взять следующую партию из модели моей партии и рассказать посетителю сайта об этой партии.Достаточно просто, верно?:
/ app / controllers / party_controller.rb
def nextparty
@party = Party.find(:first, :order => "begins_on")
end
Теперь на своей домашней странице я использовал this и работает нормально:
/ app / views / pages / home.html.erb
<% @PartyCont = PartiesController.new() %>
<% @party = @PartyCont.nextparty() %>
<h3>The next party is <%= @party.name %></h3>
Я пробовал вспомогательные методы, partials, ApplicationHelper, но этобыл единственный код, который на самом деле работал .Большинство других вещей, которые я пробовал, казалось, не сработало, потому что класс @Party не был создан (как правило, ошибка указывала на класс с временным именем и «неопределенным методом»).
Эй, я счастлив, что этоработает, но я чувствую, что в Rails есть лучший способ.Я видел несколько постов, в которых используется код, подобный приведенному выше примеру, а затем говорится: «Но вам действительно не нужно когда-либо делать это!».
Это нормально, илиЕсть ли более Rails-подобный способ?
ОБНОВЛЕНИЕ: Я думаю, что проблема не просто в элегантности ... Я только что понял, что все тесты RSPEC, попавшие на домашнюю страницу, терпят неудачу с:
Failure/Error: get 'home'
ActionView::Template::Error:
undefined method `begins_on' for nil:NilClass
Спасибо!