2011-01-08 100 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