2010-08-10 91 views

回答

-4
class ActiveRecord::Base 
include ActionController::UrlWriter 

host = case ENV['RAILS_ENV'] 
when "production" 
    "yourlivedomain.com" 
when "development" 
    "localhost:3000" 
end 
default_url_options[:host] = host 
end 
-1

爲什麼要訪問模型中的路線?這違反了Rails核心模型/視圖/控制器(MVC)模式。模型不應該有任何控制器和視圖關注的路由知識。模型應該獨立於用戶界面。

如果您告訴我們您要實現的目標,那麼我們可能會提出更好的方法。

+3

我在網站上創建新項目後發送Twitter帖子。我想使用「after_create」創建Tweet - 因此我需要鏈接回該項目。 而不是在安靜的路線中傳遞的控制器中的呼叫,這是我現在正在做的事,我想實現瘦瘦的控制器 - 胖模型。 是的,它只意味着從控制器中刪除一條線,但如果可以完成...... – 2010-08-10 08:36:23

+4

我認爲在這種情況下,適合在控制器中完成工作。 – 2010-08-10 11:11:06

40

只是爲了重新打開這個:對於所有的rails 3+用戶,包括UrlWriter都不會工作,因爲它已經被棄用了。什麼工作雖然,是這樣的:

include Rails.application.routes.url_helpers 

希望可以幫助任何人像我一樣偶然發現這一點。

+16

你不需要包含幫手;嘗試'Rails.application.routes.url_helpers.users_path' – 2013-03-13 16:11:16

+0

你真的想在模塊/類中每次需要路徑時寫出所有的東西嗎?一旦關閉,我認爲這是可以接受的,但只是做包括從多個地方訪問它。 – foomip 2016-09-15 08:31:20