2017-02-16 80 views
1

我正在使用按鈕將第一個項目鏈接到第二個項目來整合2個rails項目。現在,我有這樣的代碼Form_tag鏈接到另一個文件夾中的頁面

<%= form_tag fast_url_for(' ') do %> 
    <%= button_to AppConfig.app_clockout %> 
<% end %> 

和我的當前目錄是

/var/www/html/wizTime/wizProject/Source/project_1 

,但我不知道這怎麼能重定向到另一個項目的主頁。我想要整合的第二個項目的目錄是

/var/www/html/project_2 

請給我點子。謝謝!

+0

爲什麼你需要鏈接一個*表格*到另一個項目?你只是想要一個按鈕/鏈接到其他項目?如果是這樣 - 沒問題,但不確定取決於目錄結構是一個很好的方法,當你最終部署這些項目時 - 它們是否會擁有自己的域名?或子域名?一般來說,Rails項目是彼此獨立運行的。你不只是像這樣把它們中的兩個破裂在一起。 –

+0

因爲我知道如何鏈接到另一個按鈕點擊頁面。是的,我只想要一個鏈接到另一個項目的按鈕,並將顯示其主頁。這可能嗎? – skyranch

+0

是的,他們將在部署時擁有自己的域。 – skyranch

回答

1

正如其他評論者所說 - 你可以創建一個鏈接到其他域。你不應該依賴你的目錄結構 - 因爲當你部署時,這個目錄結構很可能會有微妙的差異。

因此,請改用域名。

您甚至可以將域放入環境變量中,以便您可以在開發計算機上使用不同的域(例如localhost:3000 vs localhost:3001)。你會像這樣使用它們:

<%= link_to 'My App', ENV['MY_APP_DOMAIN'] %> 
<%= link_to 'My Other App', ENV['MY_OTHER_APP_DOMAIN'] %> 

然後google瞭解如何在本地機器上設置環境變量來設置值。

如果你想讓它們成爲按鈕...那麼你不需要使用表單。 button_to創建自己的形式,並且使用完全一樣的方式作爲的link_to例如:

<%= button_to 'My App', ENV['MY_APP_DOMAIN'] %> 
<%= button_to 'My Other App', ENV['MY_OTHER_APP_DOMAIN'] %> 

但是......你真的不需要使用一個按鈕,如果你只是在做一個GET的URL像這樣...

(您使用的按鈕,當你需要數據,例如發佈表單POST數據到創建操作)

您可以在CSS類和風格的只是通過鏈接向看起來就好像它是一個按鈕。使用自舉類

如:

<%= link_to 'My App', ENV['MY_APP_DOMAIN'], class: 'btn btn-success' %> 
<%= link_to 'My Other App', ENV['MY_OTHER_APP_DOMAIN'], class: 'btn btn-danger' %> 

或相似。

+0

謝謝!我只需要在另一個終端上運行localhost:3001,並且一切正常。現在我遇到了一個問題,就是如何從項目1中獲取經過身份驗證的用戶,以便能夠對其他項目進行身份驗證。這兩個項目都具有登錄功能,但我希望用戶能夠在第一個項目上登錄時登錄到第二個項目。任何想法都會有很大的幫助。再次感謝你! – skyranch

+0

首先 - 我會谷歌「在軌道上單點登錄」,看看你能找到多少...它不像你想象的那麼容易。如果你卡住了...然後問一個關於堆棧溢出的新問題,我們會幫助你:) –

+0

哦,在軌道上單點登錄的idk。謝謝! – skyranch

3

如果你只想要一個的link_to和你的項目以後會有域,你可以創建在軌像這樣的鏈接: <%= link_to 'sec project', "http://www.rubyonrails.org/" %>這將創建一個普通的HTML鏈接:<a href=""http://www.rubyonrails.org/" ...> 形式通常不應鏈接到另一個項目?! 如果在提交表單後想要將視圖重定向到另一個項目,則可以在提交後使用控制器操作和重定向。

相關問題