Intentando generar una lista de tareas pendientes con Ajax a través de Ruby on Rails. Aquí está el fragmento index.html.erb:
<div class="row"> <div class="col-md-7 col-md-offset-1" id="tasks"><%= render @tasks %></div> </div>El error surge cuando llega render @tasks. El mensaje dice "Faltan tareas parciales/_tarea"
Mi controlador declara que @tasks = Task.all de la siguiente manera
class TasksController < ApplicationController before_action :all_tasks, only: [:index, :create] respond_to :html, :js def index @tasks = Task.all end def new @task = Task.new end def create @task = Task.create(task_params) end private def all_tasks @tasks = Task.all end def task_params params.require(:task).permit(:description, :deadline) end endNo estoy seguro de cuál es el problema en esta situación.
Cualquier ayuda apreciada.
Está solicitando una tarea parcial dentro de su carpeta de app/views/tasks .
Para usar o imprimir @tasks , simplemente llame a úselo en su vista usando Ruby dentro de sus vistas como <%= ruby_code %>
De forma predeterminada, los controladores en Rails representan automáticamente las vistas con nombres que corresponden a las acciones, lo que significa que si usa <%= render @tasks %> , Rails intentará encontrar algunas tasks llamadas parciales dentro de la carpeta principal que está imprimiendo la vista actual.
También he visto que está asignando el doble del valor de @books en su método index , si está usando before_action :all_tasks en su index , entonces no necesita "volver a declararlo".
Prueba con:
# app/views/index.html.erb <div class="row"> <div class="col-md-7 col-md-offset-1" id="tasks"> <%= @tasks %> </div> </div> # app/controllers/tasks_controller.rb class TasksController < ApplicationController before_action :all_tasks, only: [:index, :create] respond_to :html, :js def index end def new @task = Task.new end def create @task = Task.create(task_params) end private def all_tasks @tasks = Task.all end def task_params params.require(:task).permit(:description, :deadline) end end