Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 更新布尔值时未定义的方法_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 更新布尔值时未定义的方法

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

我目前正在开发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
  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
。事实上。。。现在你说对了。谢谢,我想应该是更深层次的。而且您的解决方案运行良好。