rai*_*dev 7 link-to ruby-on-rails-3 content-tag twitter-bootstrap
我试图在嵌套表单中使用Rails 3 content_tag方法复制"删除"按钮图标,并且不引人注意地使用jQuery(或者至少我希望如此).
使用Firebug进行检查时生成的html如下.
<a class="btn btn-danger" href="#">
<i class="icon-trash icon-white"></i>
Delete
</a>
Run Code Online (Sandbox Code Playgroud)
我正在使用以下内容生成带图标的按钮但不能添加"删除成分",也不会获得href的"#".
这是我的代码中的成分部分:
<%= link_to content_tag(:a, content_tag(:i, '', class: "icon-trash icon-white"), class: "btn btn-danger remove_fields") %>
Run Code Online (Sandbox Code Playgroud)
这会产生:
<a class="btn btn-danger remove_fields">
<i class=icon-trash icon-white"></i>
</a>
Run Code Online (Sandbox Code Playgroud)
这是基于 Api dock - content_tag的信息
它有以下代码示例:
content_tag(:div, content_tag(:p, "Hello world!"), :class => "strong")
# => <div class="strong"><p>Hello world!</p></div>
Run Code Online (Sandbox Code Playgroud)
注意我可以使用link_to块来处理这个问题,但是想知道这是否可以在没有do..end的情况下在一行中完成,更重要的是在content_for方法中.
<%= link_to('#', class: "btn btn-danger remove_fields") do %>
<i class: "icon-trash icon-white"></i>
Delete
<% end %>
Run Code Online (Sandbox Code Playgroud)
为什么不直接创建一个视图辅助方法
def link_to_delete
link_to %{<i class="icon-trash icon-white"></i> Delete}, '#', class: "btn btn-danger remove_fields"
end
Run Code Online (Sandbox Code Playgroud)
然后在你的视图中调用它link_to_delete
虽然你为什么需要你的它是一个链接
def delete_button
%{<span class="btn btn-danger remove_fields"><i class="icon-trash icon-white"></i> Delete</span>}
end
Run Code Online (Sandbox Code Playgroud)
我不太喜欢 content_for 但是:
content_tag(:span, %{#{content_tag(:i, nil, :class => "icon-trash icon-white")} Delete}.html_safe, :class => "btn btn-danger remove_fields")
Run Code Online (Sandbox Code Playgroud)
如果你想要一个 a 标签,只需更改:span为:a