Issue
I'm following this tutorial: http://www.gotealeaf.com/blog/the-detailed-guide-on-how-ajax-works-with-ruby-on-rails
He is using a _task partial to display all the tasks created so far. What I don't understand is why in the partial this line works:
<%= task.deadline %>
Where was the task defined and how does it iterate through all the tasks?
_task.html.erb
<div class="row">
<div class="col-md-5 col-md-offset-1">
<h2>Tasks</h2>
</div>
<div class="col-md-2 col-md-offset-4">
<%= link_to new_task_path, remote: true do %>
<button class="btn btn-default">New</button>
<% end %>
</div>
</div>
<div class="row">
<div class="col-md-6 col-md-offset-2" id="task-form" style="display:none;"></div>
</div>
<div class="row">
<div class="col-md-7 col-md-offset-1" id="tasks"><%= render @tasks %></div>
</div>
the controller:
class TasksController < ApplicationController
before_action :all_tasks, only: [:index, :create, :update, :destroy]
before_action :set_tasks, only: [:edit, :update, :destroy]
respond_to :html, :js
def new
@task = Task.new
end
def create
@task = Task.create(task_params)
end
def update
@task.update_attributes(task_params)
end
def destroy
@task.destroy
end
private
def all_tasks
@tasks = Task.all
end
def set_tasks
@task = Task.find(params[:id])
end
def task_params
params.require(:task).permit(:description, :deadline)
end
end
index view:
<div class="row">
<div class="col-md-5 col-md-offset-1">
<h2>Tasks</h2>
</div>
<div class="col-md-2 col-md-offset-4">
<%= link_to new_task_path, remote: true do %>
<button class="btn btn-default">New</button>
<% end %>
</div>
</div>
<div class="row">
<div class="col-md-6 col-md-offset-2" id="task-form" style="display:none;"></div>
</div>
<div class="row">
<div class="col-md-7 col-md-offset-1" id="tasks"><%= render @tasks %></div>
</div>
Solution
<%= render @tasks %>
is a shorthand for:
<% @tasks.each do |task| %>
# task object is available here so you can call task.deadline on it
<% end %>
http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials look for 3.4.5 Rendering Collections
Answered By - rmagnum2002 Answer Checked By - Timothy Miller (PHPFixing Admin)
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.