Как Rails Rook ie Интересно, как правильно повторно использовать код, взаимодействующий с объектами базы данных. Например, у меня есть:
class PostsController < ApplicationController
before_action :set_post, only: [:show, :edit, :update, :destroy]
def index
@posts = Post.all
end
end
У меня также есть страница приветствия с контроллером приветствия:
class WelcomeController < ApplicationController
def index
@posts = Post.all
end
end
Я также хотел бы показать тот же список сообщений на странице приветствия. Я реализовал частичное представление для сообщений и использовал его в представлении приветствия, но повторение того же запроса базы данных на контроллере приветствия кажется неправильным способом сделать это, поскольку я повторяюсь.
Я также вызвал другой контроллер действие, подобное этому, но я не знаю, приемлемо ли это.
class WelcomeController < ApplicationController
def index
@posts = PostsController.new.index
end
end
Интересно, существует ли правильный путь (путь рельсов) для распределения действий между контроллерами. По сути, из WelcomeController
вызовите index
действие PostsController
, поэтому мне не нужно реализовывать повторить метод