У меня проблема с попыткой сохранить СУХИЕ средства поиска AR в моем приложении. Я создал приложение для ведения блога, которое извлекает все связанные страницы, сообщения, ссылки, теги и категории для блога, когда пользователь впервые просматривает его. Пример действия show для контроллера Blog показан ниже:
def show
#find blog by user name
@user= User.find_by_login(params[:id])
@blog= @user.blog
@posts = Post.status("publish",@user).find(:all, :order => "created_at DESC")
@tags = @user.tags
@pages = Page.status("publish",@user).find(:all, :order => "created_at DESC")
@links = @user.links.public_link.find(:all, :order => 'created_at DESC')
@archives = @posts.group_by(&:month)
@categories = @user.categories.group_by(&:name)
session[:found_user][email protected]
render :layout=>false
end
Как вы можете видеть, это не очень СУХОЕ, так как есть другие действия, которые вызывают те же переменные экземпляра, такие как @tags и т. д. дальше в контроллере.
Как я могу сделать это более СУХИМ? Я попытался переместить его в модель блога, но мне все еще нужно вызывать в контроллере различные переменные экземпляра, такие как @tags и т. д.
Есть ли способ сохранить все эти переменные при первом вызове блога и повторно использовать их в контроллерах и действиях?
Спасибо за любой совет. Я использую Рельсы 2.1