2014-12-24 5 views
0

я это вынести выражение в Ruby On Rails 4 контроллера:Рубин на Rails 4 визуализации: JSON с условиями

render :json => @account_preferences, :include => {:payment_methods => {:include => {:payment_type => {:only => [:id, :name]}}}} 

Могу ли я фильтровать payment_methods как-то в этом выражении, чтобы получить только payment_methods с состоянием = ' Подтверждено?

ответ

1

Я не верю, что вы можете сделать это условно в рендеринге: json. Но что-то, как это будет работать:

class AccountPreference < ActiveRecord::Base 
    has_many :confirmed_payment_methods,-> { where state: 'Confirmed' }, class_name: 'PaymentMethod' 
end 

и называют эту ассоциацию в вашем to_json

render :json => @account_preferences, :include => {:confirmed_payment_methods => {:include => {:payment_type => {:only => [:id, :name]}}}} 
1

Если вы делаете много включений и условностей, я бы рекомендовал использовать jbuilder для создания такого рода материалов. Вы посмотрели на это? https://github.com/rails/jbuilder

Он включен в ваш Gemfile по умолчанию в проекте с рельсами 4.

+0

Благодаря Sander, я буду принимать это во внимание. В любом случае, на этот раз я хотел бы знать, можно ли сделать это так, как я предлагаю. – Rober

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