2015-09-19 3 views
0

Кто-нибудь знает правильный синтаксис в Rails 4.2 дляRails 4 синтаксических has_many

has_many :requested_friends, 
      :source => :friend, 
      :through => :friendships where :conditions => "status = requested" 

В Rails 2.3

Я имел

has_many :requested_friends, 
      :through => :friendships, 
      :source => :friend, 
      :conditions => "status = 'requested'" 

ответ

2

Ниже следует работать

has_many :requested_friends, 
      -> { where status: 'requested' }, 
      :through => :friendships, 
      :source => :friend 
+0

Это дало /app/models/user.rb:16: ошибка синтаксиса, неожиданный '\ п', ожидая => Так что я изменил его на HAS_MANY: requested_friends, : через =>: дружбу, : источник => : friend, => {где статус: 'запрошен'} Что дало app/models/user.rb: 15: ошибка синтаксиса, неожиданный =>: source =>: friend, => {где status: 'requested'}^/app/models/user.rb:15: синтаксическая ошибка, неожиданное '}', ожидающее keyword_end – gleb

+1

Аргумент лямбда должен быть представлен перед параметрами. Например. 'has_many: request_friends, -> {where ....},: through => ... и т. д.' – Shadwell

+0

@gleb Обновлен ответ – Pavan

Смежные вопросы