ruby on rails——嵌套路由(和约束)



这是我在我的路由中使用的。rb文件

  match 'trackers/(:token)' => 'trackers#show' 
  resources :trackers do
    resources :locations
  end

是否在匹配语句下嵌套:locations,因此位置的URL将使用跟踪器的令牌(这是一串字母和数字6长),而不是使用跟踪器的id?此外,我希望匹配语句工作,无论在URL中的字符的情况…所有标记都以1X开头,但如果有人输入1X,我仍然希望它能工作。我似乎无法破译语法/正则表达式,使其工作

您可以通过简单地将to_param方法添加到Tracker模型中来解决所有这些问题:

def to_param
  token
end

那么你可以完全摆脱你的match语句。使用tracker_path(tracker), edit_tracker_path(tracker)等生成的所有链接将自动使用您的token字段。

但是,请记住,即使它使用token字段,您的表单仍将提交值为params[:id],而不是params[:token]

相关内容

  • 没有找到相关文章

最新更新