【问题标题】:Custom rails routes not using :id column自定义 Rails 路线不使用 :id 列
【发布时间】:2013-03-14 08:40:23
【问题描述】:

我正在尝试创建一个自定义 Rails 路线,允许我根据 url 显示信息。例如,我的数据库中有 category_ids 和 country of origin 字段的产品。我希望能够输入 /products/(category_id)/canada 之类的内容或其他内容来列出与该类别和国家/地区匹配的项目,但是我的尝试(显然)没有成功。

到目前为止我已经尝试过

match 'products/:category_id/:country', to: "products#var_show"

没有运气。

我什至只是尝试创建一条通过序列号显示产品的路线,但尽管我在路线和控制器中指定了字段,但 rails 似乎认为我正在寻找一个 id。

match 'products/:serial', to: "products#show"

有人可以引导我朝着正确的方向前进并告诉我我做错了什么吗?谢谢。

编辑:

无论我在路由和控制器中如何称呼它,Rails 似乎都会设置参数 :id

Processing by ProductsController#show as HTML
Parameters: {"id"=>"481598745"}

在我询问的第二种情况下,理想情况下是Parameters : {"serial" => "481598745"}

【问题讨论】:

    标签: ruby-on-rails routes


    【解决方案1】:

    试试这个,

    match 'products/:category_id/:country' => 'products#show',:as => :show
    

    【讨论】:

    • 我不想通过 :id 搜索产品。我希望它返回与某个 :category_id 和 :country 或通过 :serial 匹配的产品。即使在更改并尝试之后,我也得到了与使用 number as :id 的 rails 相同的行为。
    • 更新了我的问题,增加了一些正在发生的事情。 Rails 将 :{variable} 视为 :id ,无论它看起来如何。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多