Я создаю API с rails5.beta, я последовал за руководство по созданию вложенных маршрутов: http://guides.rubyonrails.org/routing.html#nested-resourcesВложенные маршруты не работает, как ожидалось
Мои модели:
class Paymethod < ApplicationRecord
has_many :transactions
end
class Transaction < ApplicationRecord
belongs_to :paymethod
end
и routes.rb
resources :paymethods do
resources :transactions
end
rake routes
дает мне:
paymethod_transactions GET /paymethods/:paymethod_id/transactions(.:format) transactions#index
Но я всегда получаю тот же результат для любого paymethod_id
GET aymethods/1/transactions
[
{
"id": 1,
"amount": 10,
"user_id": 21,
"paymethod_id": 1,
},
{
"id": 2,
"amount": 1,
"user_id": 21,
"paymethod_id": 1,
}
]
и так же по: GET paymethods/2/transactions
[
{
"id": 1,
"amount": 10,
"user_id": 21,
"paymethod_id": 1,
},
{
"id": 2,
"amount": 1,
"user_id": 21,
"paymethod_id": 1,
}
]
Итак, почему его не фильтровать результаты по paymethod_id
?
Btw, он работает с рельсами, как Paymethod.find(2).transactions
Здесь через контроллеры: https://gist.github.com/nilsigusi/f59e65dd34495e08eaee
на самом деле его стандартные контроллеры, генерируемый путем создания модели с рельсами
Можете ли вы показать, как выглядит ваш контроллер? –
Ваш контроллер, вероятно, не найдет правильный Paymethod. Как сказал KyleDecot, мы должны видеть, что ваш контроллер проверяет, есть ли у вас 'Paymethod.find (params [: paymethod_id]). Transaction' – MrYoshiji
Я обновил вопрос с контроллерами. – user1908375