Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 未定义的方法“[]';对于零:零类):_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby 未定义的方法“[]';对于零:零类):

Ruby 未定义的方法“[]';对于零:零类):,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,可能重复: 我是rails 3的新手,我正在尝试将某些内容呈现为HTML表单: <td class="kanban-task-handler">by: <%=h (!@tasks[activity['taskid']]['assignee'].nil? ? @tasks[activity['taskid']]['assignee'] : '') %></td> 但我正在检查这个变量,并说明它是否为nil-->然后不打印任何内容。。。 那么为什么这不起作用呢

可能重复:

我是rails 3的新手,我正在尝试将某些内容呈现为HTML表单:

<td class="kanban-task-handler">by: <%=h (!@tasks[activity['taskid']]['assignee'].nil? ? @tasks[activity['taskid']]['assignee'] : '') %></td>
但我正在检查这个变量,并说明它是否为nil-->然后不打印任何内容。。。
那么为什么这不起作用呢?

我很清楚你在这里想做什么,但这里似乎@tasks为零。你可以用@tasks.nil检查一下吗

但是请记住,如果@tasks是一个数组,它不会给您零?->如果为true,则需要使用。空

更安全的检查方法是

@task.try(:attribute).try(:attribute2) etc
HTH

我想说试试:


td class=“看板任务处理程序”>由:

也许你应该用另一种方式来建模

首先,你为什么要做
@tasks[activity['taskid']['assignee']

您应该能够执行类似于
activity.assignee
或'activity.task.assignee'的操作``

我猜你有一个活动、任务和受让人模型。好吧,也许你没有代理人

但是对于前两个类,您可以这样做,并且在下面的步骤中,您不应该调用多个类的方法

class Task < ActiveRecord::Base
  has_many :activities

  def assignee_name
    try(:assignee) || 'No assignee' # or ''
  end
end

class Activity < ActiveRecord::Base
  belongs_to :task

  delegate :assignee_name, to: :task
end
类任务
现在你可以这样做了

<td class="kanban-task-handler">by: <%=h ativity.assignee_name %></td>
作者:

您也可以使用
rescue
关键字来处理同一行中的异常,请尝试以下操作

<td class="kanban-task-handler">by: <%=h (@tasks[activity['taskid']]['assignee'] rescue '') %></td>
作者:

活动也可以为零??但使用“在视图中尝试”并不好!至少我试着避开它。。。同时,这也暗示了你正在违反德米特定律。你能告诉我们你的数据是什么样子的吗?你有任务,活动模型吗?代码示例中的@tasks和activity是什么?
<td class="kanban-task-handler">by: <%=h (@tasks[activity['taskid']]['assignee'] rescue '') %></td>