2011-01-08 79 views
1

我有一个叫appointment的模型,我想改变“新”页面的工作方式。当用户点击日历上的某个时刻插槽,我希望用户被带到一个页面的URL是这样的:定制导轨路线

appointment/new/hour/10 

这将用户带到“新”页面和时间该任命将在上午10点预先安排。

我熟悉symfony路由,但我发现Rails路由有点混乱。具体来说,我不知道如何编写我的link_to函数调用,它会给我一个类似上面的URL。

我已经R'd FM的一些,但我没有找到一个地方,我想做的事情。如果有人能够解释如何做我想做的事情,或者只是将我指向相关文档,那就太棒了。

回答

5

在你的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) 

在控制器中,可以检索值和使你的新预约实例使用它使用params[:hour]

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

感谢您的彻底答案!这工作完美。有趣的是,我的表单下拉时间超过了我的一个小时,但我想这是一个单独的问题。 – 2011-01-08 18:51:13