All threads / link_to question

Ask A Question

Notifications

You’re not receiving notifications from this thread.

link_to question

Adrian DeGus asked in Rails

I'm working on a project management app that has a dashboard which links to tasks that are overdue, due today, this week, next week etc.

I can display the task titles fine but can't get the links to work. I also want to display the associated project each linked task belongs to, but can't get that to work either.

The problem seems to be my inability to call the associated project ID for each task.

Controller:

def index
    @project = Project.new
    @projects = Project.all
    @tasks = @project.tasks.all 
    # Custom Scopes
    @tasks_overdue = Task.overdue
    @tasks_today = Task.today
end

View:

<% @tasks_overdue.each do |task| %>
      <%= link_to task.title, project_task_path(@project, task) %>
      <br>
      <%= @project.project_title %>
<% end %>

Since this page is on today#index I can't pull an ID from the address bar. Normally something like @tasks = @project.tasks.all works fine, just not in this case.

Is there any way I can pull the ID for the project associated with each task, since I can iterate through those without issue?

My first thought is that your associations are not set correctly (ie. Project, has_many :tasks / Task, belongs_to :project). From there you should be able to set, like @tasks.first.project.id or in #show @task.project.id.

Unrelated to the question, but: it might be useful for you to put your scope(s) into the model, along the lines of: scope :due_today, -> { where(due_date: DateTime.now) }. You can use these scopes then like: @project.tasks.due_today.

task.project.id and task.project.project_title did the trick Jack, thanks!

Join the discussion

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

Join 39,609+ 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.