0

我正在尝试处理员工控制器中的多个连接表。

我有 2 个连接表:http: //img7.imagebanana.com/img/1cze8z4k/beziehungen.png

  • 员工 -> 职位 -> 加入表 expected_qualifications -> 技能
  • 员工 -> 加入表 current_qualifications -> 技能

现在我写到员工控制器: @employee = Employee.find(params[:id], :include => [{:position => { :expected_qualifications => :skill}, { :current_qualifications => skill}] )

但有一个语法错误:

c:/src/script/system/app/controllers/employees_controller.rb:16: 语法错误,意外']',期待 tASSOC

...urrent_qualifications => 技能}])

................................................^

首先我不知道“tASSOC”是什么,谷歌无法回答我这个问题。但更重要的是:如何编写这段代码,这样就不会再出现语法错误了?

4

1 回答 1

0

tASSOC 是=>令牌。

你有这样的代码,这是无效的:

{ :a => :b, { :c => :d } }

您必须为 Hash 中的每个值指定一个键。您只指定了一个 key :position,它有一个 Hash 作为它的对应值。以下内容无效,因为它没有键(或者更确切地说,Ruby 解释器将 Hash 中的第二个值视为没有值的键......因此它期望=>遵循它)。

编辑 | 注意:

{ :a => :b, { :c => :d } => :e }

在语法上是有效的,这就是为什么 Ruby 假设第二个嵌套哈希实际上是一个键。

于 2011-06-25T13:53:27.800 回答