如何在rails传递多个参数时重用索引方法

时间:2015-01-20 01:54:41

标签: ruby-on-rails ruby angularjs routes

我正在做我的项目,即使用了rails-api gem和angularjs。我担心的是我看到一些教程,它是控制器的索引方法,可以接收不同的参数并渲染json结果。所以,我尝试使用DHC和Postman传递不同的参数,但我发现了404错误。

localhost:3000/vendormine/index?exp=Beach&city_address=Lapasan City&est_guest=30

controller.rb

def index
  venue = Venue.all
  if params[:exp]
    experience = Experience.find(params[:exp])
    venue = experience.venues.base_filter(params[:city_address], params[:est_guest])
  end
  render json: venue, status: :ok
end

的routes.rb

resources :vendormines

1 个答案:

答案 0 :(得分:0)

您获得404,因为您的应用中没有与localhost:3000/vendormine/index相对应的路线。

尝试localhost:3000/vendormines?exp=Beach&city_address=Lapasan City&est_guest=30

resources :vendormines创建以下路由。您需要访问/vendormines以调用VendorminesController的索引操作。

        vendormines GET      /vendormines(.:format)                 vendormines#index
                    POST     /vendormines(.:format)                 vendormines#create
     new_vendormine GET      /vendormines/new(.:format)             vendormines#new
    edit_vendormine GET      /vendormines/:id/edit(.:format)        vendormines#edit
         vendormine GET      /vendormines/:id(.:format)             vendormines#show
                    PATCH    /vendormines/:id(.:format)             vendormines#update
                    PUT      /vendormines/:id(.:format)             vendormines#update
                    DELETE   /vendormines/:id(.:format)             vendormines#destroy

您可以通过在终端中执行rake routes来查看应用的路线。