Ruby on rails 自定义轨道路线

Ruby on rails 自定义轨道路线,ruby-on-rails,routing,Ruby On Rails,Routing,我有一个名为约会的模式,我想改变“新”页面的工作方式。当用户单击日历上的某个时间段时,我希望用户被带到一个URL如下的页面: appointment/new/hour/10 这将使用户转到“新建”页面,预约时间将在上午10:00预先填充 我熟悉symfony路由,但我发现Rails路由有点混乱。具体地说,我不知道如何将我的link_写入到函数调用,这样它会给我一个类似于上面的URL 我已经研究了一些FM,但我没有找到一个地方可以重复我想做的事情。如果有人能解释如何做我想做的事情,或者简单地向我

我有一个名为约会的模式,我想改变“新”页面的工作方式。当用户单击日历上的某个时间段时,我希望用户被带到一个URL如下的页面:

appointment/new/hour/10
这将使用户转到“新建”页面,预约时间将在上午10:00预先填充

我熟悉symfony路由,但我发现Rails路由有点混乱。具体地说,我不知道如何将我的
link_写入到
函数调用,这样它会给我一个类似于上面的URL


我已经研究了一些FM,但我没有找到一个地方可以重复我想做的事情。如果有人能解释如何做我想做的事情,或者简单地向我指出相关的文档,那就太棒了。

在your routes.rb中,您可以创建一个路由,例如:

# Rails 3
match 'appointment/new/hour/:hour' => "appointments#new", :as => :new_appointment_with_time

# Rails 2
map.new_appointment_with_time 'appointment/new/hour/:hour', :controller => "appointments", :action => "new"
然后,您可以在链接中使用它:

link_to "10am", new_appointment_with_time_path(:hour => 10)
在控制器中,您可以检索该值,并使用
参数[:hour]

@appointment = Appointment.new(:hour => params[:hour])

在routes.rb中,您可以创建一个路由,例如:

# Rails 3
match 'appointment/new/hour/:hour' => "appointments#new", :as => :new_appointment_with_time

# Rails 2
map.new_appointment_with_time 'appointment/new/hour/:hour', :controller => "appointments", :action => "new"
然后,您可以在链接中使用它:

link_to "10am", new_appointment_with_time_path(:hour => 10)
在控制器中,您可以检索该值,并使用
参数[:hour]

@appointment = Appointment.new(:hour => params[:hour])

谢谢你的详尽回答!这非常有效。有趣的是,我的表格下拉列表中的时间从我的表格中减去了一定的小时数,但我想这是一个单独的问题。谢谢你的详细回答!这非常有效。有趣的是,我的表单下拉列表中的时间从我的列表中减去了一定的小时数,但我认为这是一个单独的问题。