でネストされた連想属性などは、私は三つのモデルを持っている:のRails:次のように応答
#Product Model
class Product < ActiveRecord::Base
belongs_to :user
has_one :address
validates :title, :description, :user_id, presence: true
validates :product_type, numericality:{:greater_than => 0, :less_than_or_equal_to => 2}, presence: true
accepts_nested_attributes_for :address
end
#Address Model
class Address < ActiveRecord::Base
belongs_to :city
belongs_to :product
def related_city
city = address.city
end
end
#City Model
class City < ActiveRecord::Base
has_many :addresses
end
は私が製品を取得していますが、私はいくつかの属性を除いて、私のJSON応答に同様の連想属性を含める必要があります。
def show
product = Product.find(params[:id])
render json: product.to_json(:include => { :address => {
:include => { :city => {
:only => :name } },
},:user =>{:only=>{:first_name}}}), status: 200
end
これは私の構文エラーを与えている:ここでは は、私がこれまで行っているものです。ユーザーを削除するとうまくいきますが、ユーザーの名前も必要になります。さらに、私はrubyの新しいハッシュ構文を使って上記のコードをどのように書くのだろうか?
新しい構文を使用すると、結果的に間違ってしまうことが少なくなります。 ':include => {...}'は 'include:{...}'となり、読みやすくなりがちです。古いスタイルを使用する唯一の理由は、恐ろしい古い1.8バージョンを使用する理由がまだある場合です。 – tadman