1

我想向 Rails 应用程序添加一条路线,这样我就可以通过 id 以外的其他字段进行搜索(并且仍然可以通过 id 进行搜索)

def bycode
  @plot = Plot.find_by_code(params[:code])
  respond_to do |format|
    if !plot.nil?
      format.json {render json: @plot}
    else
      format.json
    end
  end
end

在 routes.rb 中:

resources :plots do
  get 'bycode/:code' => 'plots#bycode'
end

在 $ rake 路线中,我得到:

GET    /plots/:plot_id/bycode/:code(.:format) plots#bycode

我只想能够做到

http://myapp.com/plots/bycode?code=codename

或类似的东西

我错过了什么?

4

1 回答 1

1

如果你使用 RESTful 路由怎么办 ( http://myapp.com/plots/<code>)

在你的控制器中

@plot = Plot.where(code: params[:id]).first || Plot.find(params[:id])
于 2012-11-02T20:42:05.020 回答