如何定義兩個控制器之間的關係。我有一個名爲遊樂設施的管制員,另一名名爲註冊人。無論如何,我可以從遊樂設施控制器訪問註冊人數據庫嗎?我正在想2個控制器之間的關係
@registrant = Registrant.find(:first)
從內部乘坐,但沒有奏效。 有什麼建議嗎?
感謝
如何定義兩個控制器之間的關係。我有一個名爲遊樂設施的管制員,另一名名爲註冊人。無論如何,我可以從遊樂設施控制器訪問註冊人數據庫嗎?我正在想2個控制器之間的關係
@registrant = Registrant.find(:first)
從內部乘坐,但沒有奏效。 有什麼建議嗎?
感謝
您可以從您的遊戲機控制器訪問您的註冊模式,就像任何其他控制器訪問它。你是什麼意思Registrant.find(:first)
不工作?
現在,如果您的遊樂設施模型和註冊人模型(如has_many關聯)之間存在關係(或通常稱爲關聯),則可以使用嵌套資源將一個控制器嵌套在另一個控制器中。
查看Action Controller Overview和Rails Routing from the Outside In指南,並考慮收集一本關於類似Agile Web Development with Rails的Rails的好書。
事實證明,我只是有一個大寫錯誤,它已經註冊到註冊人模式了!感謝您的幫助! – 2009-12-04 17:08:01
如果定義模式:駕駛和註冊(或更一般的用戶),那麼你可以設置遊樂設施控制器上的before_filter:
before_filter :get_user
def get_user
@user = User.find(:first, :conditions => %Q(userid = "#{params[:user_id]}"))
end
這將取得與USER_ID傳過來的參數的用戶在控制器生成視圖之前。
這似乎並沒有回答他的問題,更簡單地說你可以做'User.find(params [:user_id]'或者我錯過了什麼? – 2009-12-04 03:58:09
糟糕,錯過了一個正確的paren在那裏。 – 2009-12-04 03:59:25
是的,這應該工作。爲了使術語正確,您正在從RidesController訪問註冊人模型。他們都應該在同一個數據庫中,但在單獨的表中。
請發佈您收到的錯誤消息。
您可以從任何控制器訪問任何模型。上面的代碼應該可以工作。此外,我假設你的意思是註冊人表,而不是註冊人數據庫。 – 2009-12-04 04:58:59
上面的行應該只是檢索第一個註冊人。那麼你是什麼意思:「但那不起作用」。你有錯誤消息?你想重定向到或呈現註冊人視圖嗎?您無法從乘車視角訪問註冊人?請解釋。 – nathanvda 2009-12-04 12:06:23