2012-07-20 37 views
0

即時通訊必須使用Ruby而不是PHP,需要告訴紅寶石如果登錄使用使用loggedin.rhtml如果不使用notloggedin.rhtml。但是這些文件只包含頁面的一部分菜單,所以它像php include函數一樣但是有if語句紅寶石如果登錄使用。 loggedin.rhtml其他使用notloggedin.rhtml

+1

無論登錄問題如何,Ruby「使用PHP」開始?爲什麼你需要混合這兩個? – deceze 2012-07-20 07:36:09

+0

認爲是這樣的,如果我通過ruby調用它並繼續使用ruby並且drop php,那麼可以使用ruby寫這個命令嗎? – david 2012-07-20 07:42:41

+0

是否可以寫入*如果登錄,做A,否則在Ruby中做B *?我當然希望如此。 – deceze 2012-07-20 07:57:00

回答

1

Ruby可以執行shell腳本,PHP也不例外。

if logged_in? 
    output = `this.php` 
else 
    output = `that.php` 
end 

這將既可以執行this.phpthat.php並存儲在output腳本輸出,假設腳本有execute permission和適當shebang

#!/usr/bin/env php 
<?php 
    echo "hello world"; 
?> 

注意,這就像using PHP from the command line,腳本不要」無法訪問Rails環境中的任何對象,即不能使用像$_REQUEST$_SESSION這樣的變量。如果您需要腳本中的任何數據,則必須將其作爲參數明確傳遞。

+0

好吧,讓堅持紅寶石...我有一個頁面和一個基本的菜單div在左側,我已經放在一個新的notlogged.rhtml。併爲用戶登錄時創建了第二個菜單loggedin.rhtml,因此如果登錄或不登錄,頁面將加載相關(模板頁面) – david 2012-07-20 08:31:18