我正试图处理员工控制器中的多个连接表。Rails - 控制器中使用2个连接表的语法错误
我有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”是什么,谷歌无法回答我这个问题。但更重要的是:如何编写这段代码,这样就不会有语法错误了?
感谢您的回答。我不是这种语法,我是一个非常血腥的初学者,所以我不能跟得上你,为此而感到遗憾! 是:a,:b,:c ......所有不同的表格?我不能真正将它转移到我的案件,对不起。 像这样的东西? '{:current_qualifications =>:skill,{:expected_qualifications =>:skill} =>:position}' '{:position => {:expected_qualifications =>:skill}}'当我想补充剩下的时候,我就陷入困境。 – Kirinriki
我避免评论表等,因为问题是你对语言本身的理解;)哈希的语法是:'{key => value,key => value,key => value}'等等。键和值可以是任何东西(String,Symbol,Array,Hash ...),但它们必须始终配对在一起。当你在一个Hash中嵌套一组curl大括号时,你正在创建*另一个Hash *,所以'{:a => {:b =>:c}}'产生一个二维散列,其中散列[ a] [:b] ==:c'。但是'{:a:> {:b =>:c},{:d =>:e}}'会导致解析错误,因为{:d =>:e}一个哈希),没有配对的密钥。 – d11wtq
是啊,我不是母语为英语的人,我想我会产生可怕的句子:P Sry! 谢谢,我想我明白你的意思。因此,如果我删除环绕的卷曲括号:d =>:e,则语法必须正确。我为我的情况实现了它,现在只有#'的未定义局部变量或方法'current_qualifications'的名称错误...' –
Kirinriki