2010-12-11 140 views
31

好的,我正在教自己RoR,同時開發一個簡單的api &網頁界面。我一直在關注一些指南並測試不同的結果。我嘲笑了一些HTML模板,我正在開始將它們分解成視圖。Ruby on Rails - link_to button/css

在我的HTML我有下面的代碼,這與CSS樣式的Button:

<input type="submit" name="" value="Add" id="open-contacts-dialog-btn" class="inbox-sf-add-btn tip" title="Open an dialog to add a new contact"/> 

這是我在我的面板按鈕,我想鏈接到/電子書/新/ ,我知道我需要一個link_to在這裏,但我最終的代碼是什麼?我試過的代碼如下

<%= link_to "Add", new_admin_course_path, :id=>"open-contacts-dialog-btn", :class=>"inbox-sf-add-btn tip" %> 

但它沒有添加我的CSS樣式,它只是生成文本「添加」。任何幫助都會有用。謝謝

回答

63

link_to生成一個<a>標記,它不是input type="submit"。你應該使用應該是一個button_to,產生了input type="submit"按鈕將鏈接形式:

<%= button_to "Add", new_admin_course_path, :id => "open-contacts-dialog-btn", 
     :class => "inbox-sf-add-btn tip", :method => :get %> 

注意:method => :get。沒有它,button_to將生成一個方法設置爲張貼的表單。

+4

這個作品,謝謝。實施Twitter Bootstrap的人員應該知道,此表單不會生成

0

但它沒有加我的CSS造型
你是什麼意思?生成類別爲inbox-sf-add-btntip的鏈接(a元素),對吧?所以有什麼問題?

如果你想嚴格按鈕(input元素而不是a),你可以在你的HTML表單(form元素)的action屬性指定/book/new(或<%= new_admin_course_path %>)。

9

我最近不得不這樣做是因爲我的表單對link_to的行爲與button_to的行爲不同,我需要鏈接提供的功能。我發現的最佳解決方案根本不使用CSS,而是調用.html_safe來轉義Ruby代碼中的html,並將鏈接正確顯示爲按鈕。你想要做的是這樣的:

<%= link_to "<button>Add</button>".html_safe, new_admin_course_path, :id=>"open-contacts-dialog-btn", :class=>"inbox-sf-add-btn tip" %> 
+2

只要讓其他Bootstrap用戶知道這將無法與導航欄中的按鈕一起使用,因爲它會放置CSS 標籤上的類而不是