• Как создавать простые страницы на Rails?

    @ark_m
    Советую и сам использую этот вариант, он из good practice
  • Как вывести в вьюху по заданому значению?

    @ark_m
    Если в контролере @tasks определен как Task.done, то в представлении должно быть:

    <% @tasks.each do |task| %>
    ...
    <% end %>


    Т.к. при итерации @tasks.done.each ты будешь вызывать scope второй раз и перепроверять done: true в уже отобранных по этому параметру объектах.
  • Как вывести в вьюху по заданому значению?

    @ark_m
    Не самый удачный вариант, ты забиваешь память объектами, которые по факту тебе не нужны. Намного оптимальнее будет выбрать то, что тебе нужно сразу на уровне контроллера:

    def index
      @tasks = completed_tasks
    end
    
    private
    
      def completed_tasks
        Task.where(done: true)
      end


    При желании, ты даже можешь объявить completed_tasks как helper_method класса, и передавать в этот метод параметры для дополнительных сортировок order(*args) из представления.

    Идеальным же вариантом как по мне, было бы использование enum (task: open/completed), тогда можно было бы обойтись: @tasks = Task.completed