【问题标题】:Basic routing of URL parametersURL参数的基本路由
【发布时间】:2011-11-20 09:29:29
【问题描述】:

我的目的只是在索引页面上显示两个可选的 URL 参数。

0.0.0.0:3000/comparison --> 显示:空比较索引页

0.0.0.0:3000/comparison/3 --> 显示:

3

0.0.0.0:3000/comparison/3/4 --> 显示:

3
4 

我为“比较”创建了一个控制器 + 视图

rails generate controller comparison

我加了

match ':comparison/:index(/:a(/:b))'

到 routes.rb 并添加一个 index.html.erb 显示两个参数

<%= @a %>
<%= @b %>

我的控制器长这样,只是把参数转发给视图

class ComparisonController < ApplicationController
  def index 
    @a = params[:a]
    @b = params[:a]
  end
end

这样我得到一个路由错误,例如

Routing Error

No route matches [GET] "/comparison/3/4"

如何获得正确的路由?

【问题讨论】:

  • 现在真的是match ':comparison/:index(/:a(/:b))'而不是match 'comparison/:index(/:a(/:b))'吗?
  • 我改了。现在我收到错误“ArgumentError: missing :controller”
  • 试试这个 -> 通过查询字符串 stackoverflow.com/questions/6413077/… 来获取多个 ids

标签: ruby-on-rails ruby


【解决方案1】:

试试这条路线(假设 Rails 版本 3.x):

match 'comparison(/:a(/:b))' => "comparison#index"

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 2020-04-03
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    相关资源
    最近更新 更多