2010-12-11 139 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 标签上的类而不是