2015-06-15 26 views
0

我升級我的項目導軌4,我在這條線得到一個錯誤:Rails的 - 爲了通過合資屬性

Group.first.event_joins.order(event: [:threshold]).reverse 

此行應根據閾值選擇event_joins和訂購。閾值列在事件表中不在event_joins表中。我想要按事件閾值排序event_joins。我怎樣才能寫在軌道4?

錯誤:

ArgumentError: Direction "[:threshold]" is invalid. Valid directions are: [:asc, :desc, :ASC, :DESC, "asc", "desc", "ASC", "DESC"] 

感謝

+0

嘗試'Group.first.event_joins.order( 'events.threshold降序')'如果你想按降序排列,或只是'集團。 first.event_joins.order('events.threshold')'如果你想要升序。 – Pavan

+0

我得到一個SQL錯誤:Mysql2 ::錯誤:'訂單子句'中的未知列'events.threshold' – Snake

回答

0

這應該工作:

Group.first.event_joins.order('events.threshold').reverse 

軌道4支持哈希參數,如order(model: :asc)但我不知道如何使它通過協會工作。

+0

我收到一個SQL錯誤: ActiveRecord :: StatementInvalid:Mysql2 :: Error:Unknown column' event.threshold'in'order clause':SELECT'event_joins'。* FROM'event_joins' WHERE'event_joins'.'eventable_id' = 1 AND'event_joins'.'eventable_type' ='Group'ORDER BY event.threshold – Snake

+0

請添加你的模型協會的問題。我認爲這是一個簡單的'belongs_to'事件,但現在看起來不像。 – fylooi

0

event_join屬於一個事件。

此制定了我:

group.event_joins.joins(:event).order("events.threshold").reverse 

歡呼