All threads / Nested Forms Tutorial: How do you display the Tasks in the Project Index and Show Views?

Ask A Question

Notifications

You’re not receiving notifications from this thread.

Nested Forms Tutorial: How do you display the Tasks in the Project Index and Show Views?

Ryan Kulp asked in Rails

I am trying to display the Tasks on the Products#index and get Type Error in Projects#index
"can't cast Enumerator"

How can I display attributes from tasks on the Products views?

Here's my code -
ProjectsController:

def index
@projects = Project.all
@projects_id = @projects.find(:project_id)
@tasks = Project.where(:project_id => @projects_id).all
end

Projects#index:
<% @tasks.each do |task| %>
<%= task.description %>
<% end %>

AddIndexToTask migration:
def change
add_index :tasks, :project_id
end

I got it working.

def index
@projects = Project.all
end

Projects#index:

<% project.tasks.each do |task| %>
<%= task.description %>
<% end %>

While above solution works, looks like you had a typo here:
@tasks = Project.where(:project_id => @projects_id).all

instead of @tasks = Task.where(:project_id => @projects_id).all

Thanks @eelcoj ! I caught that and it still wouldn't work so I dropped the two lines in the controller. Then used project.tasks.each block in the index so I didn't have to create an instance variable after all.

Ah, another typo—though you got it working, but for maintainability—a (possible) solution. @projects_id returns an object, while it needs an array. That line should be something like this: @projects_id = @projects.find(:project_id).pluck(:id) (which should return [1, 2, 3].

Join the discussion

Want to stay up-to-date with Ruby on Rails?

Join 37,629+ developers who get early access to new tutorials, screencasts, articles, and more.

    We care about the protection of your data. Read our Privacy Policy.

    logo Created with Sketch.

    Ruby on Rails tutorials, guides, and screencasts for web developers learning Ruby, Rails, Javascript, Turbolinks, Stimulus.js, Vue.js, and more. Icons by Icons8

    © 2020 GoRails, LLC. All rights reserved.