私のあいまいなトピックを許してください、私は現在、ユーザー、リスト、およびアイテムの3つのモデルを持つレールアプリケーションに取り組んでいます。ユーザーには多くのリストがあり、リストには多くのアイテムを含めることができます。現在、ユーザーが持っているリストの数を表示する方法に取り組んでおり、その中のアイテムの数をリストに表示できるようにする必要があります。リスト モデルで列項目を作成しなくても、このデータを解析する方法があると思います。私はレールに慣れていないので許してください。これを行うにはかなり簡単な方法があると確信しています。以下は、私のメソッドの構文と、クラス リストと項目です。前もって感謝します。(リストデータで解析される各リストのアイテム数を取得しようとしています)
def showLists
pageSize = 10
pageNum = 1
if (params[:limit])
pageSize = (params[:limit])
pageSize = pageSize.to_i
end
pageNum= (params[:page])
pageNum = pageNum.to_i
@key = PrivateKey.find(1)
@key = @key.key
if (params[:apiKey]) == @key
@user = User.find_by_facebookexternalId(params[:id])
if @user.access_key.key == (params[:accessToken])
y =(pageSize*pageNum)
x =(y-pageSize)
@list = @user.lists
total= @list.count
@list = @list.all(:select=>[:name,:id,:listtype,:description ], :include=>[:items=>@list[x].items.count])
@list = @list[x .. y]
#listResponse={:name=>@list.name}
response = {:total =>total,:page => pageNum, :limit=> pageSize, :userId=> @user.id, :accessToken=> @user.access_key.key , :list=>@list }
#response = {:lists => @list}
respond_to do |format|
format.json {render :json => response}
end
end
end
end
スキーマ情報
# == Schema Information
#
# Table name: lists
#
# id :integer not null, primary key
# name :string(255)
# active :boolean
# user_id :integer
# listtype :string(255)
# description :text
# roughlist :boolean
# created_at :datetime not null
# updated_at :datetime not null
#
class List < ActiveRecord::Base
attr_accessible :name, :active , :type , :description , :roughlist, :listtype
belongs_to :user, :foreign_key => :user_id
has_many :map_list_items
has_many :items, :through => :map_list_items
#has_and_belongs_to_many :items
end
And my item schema is here
# == Schema Information
#
# Table name: items
#
# id :integer not null, primary key
# name :string(255)
# description :string(255)
# user_id :integer
# barcode :string(255)
# asin_id :string(255)
# isbn_id :string(255)
# barcode_id :integer
# created_at :datetime not null
# updated_at :datetime not null
#
class Item < ActiveRecord::Base
belongs_to :barcode , :foreign_key => :barcode_id
has_many :map_item_tags
has_many :map_list_items
has_many :lists, :through => :map_list_items
#has_and_belongs_to_many :lists
end
私が取得するjsonファイルのサンプルは以下のとおりです
{
"total": 3,
"page": 1,
"limit": 10,
"userId": 5,
"accessToken": "BAAFdQiIeExEBAOwtEtFXgI0c2k9kka3EQbEBDca2FGJZBQyIOLGfnJQr7k1FaGFEx6dzzWxQkxZB4uFSEj3HvZARyZBKLtTzn9NhEXEBtsBxuPBf2O5PxtofkZC4GQg9OmWGahJ42kZBuEay68rlDb",
"list": [
{
"description": "",
"id": 1,
"listtype": "christmas",
"name": "mom"
},
{
"description": "",
"id": 2,
"listtype": "christmas",
"name": "mom"
},
{
"description": "",
"id": 3,
"listtype": "christmas",
"name": "mom"
}
]
}