2014-08-28 1 views
0

У меня есть угловое приложение, работающее на рельсах, и я пытаюсь получить данные из моего рельса с параметрами, и он всегда просто возвращает все голоса. Я думаю, что моя проблема на моем сервере.Rails не использует мои параметры для отправки данных

Это всегда вызов действия индекса, но это не использовать параметры, кто-то пожалуйста, помогите мне получить эту работу

Вот выход сервера

Started GET "/api/v1/votes.json?votable_id=129&votable_type=Post" for 127.0.0.1 at 2014-08-28 13:16:51 -0700 
Processing by Api::V1::VotesController#index as JSON 
    Parameters: {"votable_id"=>"129", "votable_type"=>"Post"} 
    Vote Load (0.3ms) SELECT "votes".* FROM "votes" ORDER BY id DESC 
Completed 200 OK in 8ms (Views: 5.2ms | ActiveRecord: 0.3ms) 

Вот мой контроллер

module Api 
    module V1 
    class VotesController < ApplicationController 
     respond_to :json 

     def index 
     respond_with(Vote.all.order("id DESC")) 
     end 

     def show 
     respond_with(Vote.find(params[:id])) 
     end 

     def create 
     @vote = Vote.new(vote_params) 
     @vote.save 
     respond_with @vote, location: "" 
     end 

     def update 
     @vote = Vote.find(params[:id]) 
     @vote.update(vote_params) 
     respond_with @vote, location: "" 
     end 

     def destroy 
     respond_with Vote.destroy(params[:id]) 
     end 

    private 
     def vote_params 
     params.require(:vote).permit(:vote, :votable_id, : votable_type, :user_id) 
     end 
    end 
    end 
end 

ответ

2

Вы отправляете запрос GET контроллеру голосов, который (без идентификатора как часть пути запроса) вызывает действие индекса, как указано в config/routes.rb. Если вы хотите, чтобы голоса избирательно отображались из индекса, вам придется работать выборочно с параметрами в вашем действии индекса.

def index 
    @votes = Vote.where('votable_id IN (?)', params[:votable_id]) 
       .where('votable_type = ?', params[:votable_type]) 
       .order('id DESC') 
    respond_with(@votes) 
end 
Смежные вопросы