2016-04-25 41 views
-4

現在我在Ruby語言新。目前正在學習Ruby。我是PHP中的專家編碼器。基本上我在CakePHP中工作。 CakePHP和Ruby目錄結構大致相同。但是我在Ruby Code中混淆了一點點。如何在ruby頁面訪問一個變量?

在CakePHP而我定義bootstrap.php我得到整個網站的這個變量的任何變量。

假設我有一個變量名$gallery_path = 'files/gallery/';如果我在控制器,模型和視圖中輸入echo $gallery_path。我得到了我的畫廊路徑。

但在這裏紅寶石我無法定義,如PHP bootstrap.php任何變量,請給我建議。

+0

你要找的全局變量... –

+0

@SuperPeanut不,全局變量是不是問題的答案在這裏。 – tadman

+0

你想要定義什麼樣的變量? Ruby強烈鼓勵人們將這些組織成模塊或類,以簡化訪問並避免衝突。 – tadman

回答

0

您可以使用環境變量,試試這個寶石:https://github.com/bkeepers/dotenv 或者你可以將它們定義:

ENV["host"] = "localhost:3000" 
0

我想你指的全局變量。在的Ruby-on-Rails的,你可以把它寫像

控制器:

@value = 2+1 

HTML:

<%= @value %> 

所以你在瀏覽器中輸出將是 「3」

2

的東西這種變化頻繁,以至於你需要時不時對它們進行編輯,但很少,以至於你不經常變化的,一個簡單的module那麼這裏工作。

你可以像這樣開始:

module SiteConfiguration 
    mattr_accessor :site_name 
    mattr_accessor :payment_provider 
end 

然後,你可以配置在config/environment.rb

SiteConfiguration.site_name = 'The Site' 
SiteConfiguration.payment_provider = 'PayPal' 

這些都是在你的應用隨處訪問。

+0

你能說說我的'模塊網站配置'嗎? – Chinmay235

+0

我收到錯誤消息'未初始化的常量ApplicationController :: SiteConfiguration' – Chinmay235

+0

@Chinu您需要將'site_configuration.rb'放置在自動加載的某個位置。'app/concern'是一個通常會被檢查的地方。 – tadman

0

application_controller.rb應該寫下面

$gallery_path = 'files/gallery/'; 

你的視圖文件

<%=$gallery_path %> 
+0

這是非常混亂,應該是一個絕對的最後手段。全局變量在Ruby中非常少用。 – tadman

相關問題