Ruby on rails 更新布尔值时未定义的方法
我目前正在开发todo应用程序管理器 我的任务模型有一个描述和一个布尔值,默认为false。 单击“完成”时,布尔值应切换为true 但是,我有一个错误Ruby on rails 更新布尔值时未定义的方法,ruby-on-rails,ruby,Ruby On Rails,Ruby,我目前正在开发todo应用程序管理器 我的任务模型有一个描述和一个布尔值,默认为false。 单击“完成”时,布尔值应切换为true 但是,我有一个错误未定义的局部变量或方法'tasks' 这是我的任务控制器: def index @tasks = Task.all @task = Task.new end def complete @task = tasks.find(params[:id]) @task.completed = true @task.save redi
未定义的局部变量或方法'tasks'
这是我的任务控制器:
def index
@tasks = Task.all
@task = Task.new
end
def complete
@task = tasks.find(params[:id])
@task.completed = true
@task.save
redirect_to root_path
end
def incomplete
@task = tasks.find(params[:id])
@task.completed = false
@task.save
redirect_to root_path
end
和我的索引:
<h3>Tâches à réaliser</h3>
<% @tasks.incomplete.each do |task| %>
<p><%= "#{task.description} | Créé le #{task.created_at.day}/#{task.created_at.month}" %>
<%= link_to "Done", complete_task_path(task), method: :put %><%= link_to ' Modifier', edit_task_path(task) %><%= link_to ' X', task, method: :delete, data: { confirm: 'Are you sure?' } %></p>
<% end %>
<h3>Tâches réalisées</h3>
<% @tasks.completed.each do |task| %>
<p><%= task.description %>|
<%= link_to "Undo", incomplete_task_path(task), method: :delete %></p>
<% end %>
我试图改变变量,但这个错误仍然是一样的
有人知道这里出了什么问题吗?这里的错误非常明确:您正在调用未定义的amethod或变量 查看
complete
和complete
方法中的第一行:
@task = tasks.find(params[:id])
任务
没有在任何地方定义,因此出现错误。#find
方法在ActiveRecord中是一个类方法,因此您要做的是
@task = Task.find(params[:id])
这里的错误非常明确:您正在调用未定义的amethod或变量 查看
complete
和complete
方法中的第一行:
@task = tasks.find(params[:id])
任务
没有在任何地方定义,因此出现错误。#find
方法在ActiveRecord中是一个类方法,因此您要做的是
@task = Task.find(params[:id])
或者他们的意思可能是任务。。。现在你说对了。谢谢,我想应该是更深层次的。您的解决方案运行良好。或者可能它们意味着
@tasks
。事实上。。。现在你说对了。谢谢,我想应该是更深层次的。而且您的解决方案运行良好。