use*_*033 1 lambda ruby-on-rails has-many ruby-on-rails-4.1
我更新了我Rails的版本的应用程序Rails 3.0来Rails 4.1,我已经得到了以下错误:
ArgumentError: Unknown key: :order. Valid keys are: :class_name, :class, :for...
Run Code Online (Sandbox Code Playgroud)
问题出现在以下行中:
has_many :downloads, :dependent => :destroy, :order => "downloads.position DESC"
Run Code Online (Sandbox Code Playgroud)
经过一些谷歌研究,这条线看起来像这样:
has_many :downloads, :dependent => :destroy, -> {order('downloads.position DESC')}
Run Code Online (Sandbox Code Playgroud)
现在我得到了错误:
syntax error, unexpected '\n', expecting tASSOC
Run Code Online (Sandbox Code Playgroud)
我也尝试了其他变化,但没有任何效果.我希望你能帮助我.
更改lambda的顺序可以解决您的问题:
has_many :downloads, -> {order('downloads.position DESC')}, :dependent => :destroy
Run Code Online (Sandbox Code Playgroud)
请注意,我已经移动了lamda,之前:dependent => :destroy是一个哈希(键值).当你将lambda放在hash之后(它没有分隔我的花括号{})时,Ruby会期望下一个值(在你的情况下是lambda)再次成为一个键值对,认为它是hash的继续和当它没有找到下一个值为键值对时,它显然会抱怨,这就是你的情况.
| 归档时间: |
|
| 查看次数: |
1305 次 |
| 最近记录: |