私はcurrent_userが売り手であるすべてのアイテムを返すAPIエンドポイントを設定する必要があります。私は私が持っているためので、RESTfulなルートを設定するために自分のベストをやっているこの:Rails、current_userが売り手であるすべてのアイテムを返すAPIエンドポイント?
routes.rbを
Rails.application.routes.draw do
resources :users
resources :items
get "users/:id/items" => "users#items"
...
users_controller.rbこれはseller_id列がのparamsに等しいすべての項目を返します
[:id]最終的には、itemsテーブルにbuyer_idカラムを追加して、それをフィルタリングできるようにしたいので、バイヤーと売り手を区別する必要があります。明らかに私はここでそれをやっていません。
class Item < ActiveRecord::Base
belongs_to :seller, :class_name => 'User', :foreign_key => 'seller_id'
enum status: {available: 0, pending: 1, sold: 2, expired: 3, banned: 4 }
end
user.rb
class User < ActiveRecord::Base
has_many :items, :class_name => 'Item', :foreign_key => 'seller_id'
end
schema.rb
ActiveRecord::Schema.define(version: 20160715043217) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
create_table "categories", force: :cascade do |t|
t.string "title"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "items", force: :cascade do |t|
t.string "title"
t.text "description"
t.integer "price", limit: 8
t.integer "status"
t.datetime "published_date"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "seller_id"
end
add_index "items", ["seller_id"], name: "index_items_on_seller_id", using: :btree
create_table "users", force: :cascade do |t|
t.string "name"
t.decimal "latitude", precision: 9, scale: 6
t.decimal "longtitude", precision: 9, scale: 6
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
add_foreign_key "items", "users", column: "seller_id"
end
あなたは_buyer_をしたいし、動作していない_seller_たちを示します。私は今混乱している:)問題は何ですか? –
実際の質問はありますか? –
私は彼が売れた商品のために何をしているかに基づいて買った商品をどのように追加するのか混乱していると思います。 –