我有一个名为appointment
的模型,我想改变“新”页面的工作方式。当用户点击日历上的某个小时位置时,我希望用户被带到包含以下URL的页面:
appointment/new/hour/10
这会将用户带到“新”页面,预约时间将在上午10:00预先填充。
我熟悉symfony路由,但我发现Rails路由有点令人困惑。具体来说,我不知道如何编写我的link_to
函数调用,它会给我一个类似上面的URL。
我已经获得了一些FM,但我没有找到一个超出我想做的事情的地方。如果有人可以解释如何做我正在尝试做的事情,或者只是简单地指出相关的文档,那就太棒了。
答案 0 :(得分: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])