- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对使用 Rails 3.2 并为 Bootstrap modals 制作助手感到沮丧。我不明白何时需要 concat 与何时不需要 concat 有时我最终会丢失标签,有时我会得到一个哈希,其中包含之前和结束标签之间的所有选项。当我在任何带有 do-end 的内容标签上使用 concat 时,一切都变得困惑了。我想做的就是复制这个html:
<div id="stupid_modal" class="modal hide fade" tabindex="-1" data-width="760">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="fontello-icon-cancel-1"></i></button>
<h4>Modal header</h4>
</div>
<div class="modal-body">
<div class="page-header">
<p>Test header 1 2 3.</p>
</div>
<div class="row-fluid">
content here... blah blah
</div>
</div>
<div class="modal-footer">
<button type="button" data-dismiss="modal" class="btn">Close</button>
<button type="button" class="btn btn-green">Save changes</button>
</div>
</div>
module ModalHelper
def modal(css_id, header_text, hidden = true, options = {},&block)
class_text = "modal"
class_text += " hide fade" if hidden
content_tag(:div, :class => 'modal hide fade', :id => css_id, :style => ("display:none;" if hidden)) do
concat modal_header(header_text)
concat modal_body(&block)
concat modal_footer
end
end
def modal_button(link_text, href)
modal_caller link_text, href, :button
end
def modal_link(link_text, href)
modal_caller link_text, href
end
private
def modal_caller(link_text, href, type = nil)
options = { :"data-toggle" => "modal" }
options.merge!({ :class => "btn" }) if type == :button
link_to link_text, "#" + href, options
end
def modal_header(header_text)
content_tag(:div, :class => 'modal-header') do
concat content_tag(:button,(content_tag(:i, :class => 'fontello-icon-cancel-1')),:class => 'close', :"data-dismiss" => 'modal', :"aria-hidden" => 'true')
concat content_tag(:h4, header_text)
end
end
def modal_body(page_header = "")
content_tag(:div, :class => 'modal-body') do
content_tag(:div, :class => 'page-header') do
concat content_tag(:p, page_header)
end
content_tag(:div, :class => 'row-fluid') do
yield
end
end
end
def modal_footer
content_tag(:div, :class => 'modal-footer') do
concat content_tag(:button, 'Close', type: "button", :class => 'btn btn-boo', :"data-dismiss" => 'modal')
concat content_tag(:button, 'Save', type: "button", class: 'btn btn-green')
end
end
<%= modal_link "New Stupid Modal", "stupid_modal" %>
<%= modal('stupid_modal', 'Shouldnt this work?', submit: true, tabindex: '-1') do %>
<% render 'stupid_modal_partials/stupid_modal' %>
<% end %>
<button aria-hidden="true" class="close" data-dismiss="modal"><i>{:class=>"fontello-icon-cancel-1"}</i></button>
<i>{:class=>"fontello-icon-cancel-1"}</i>
def modal_header(header_text)
content_tag(:div, :class => 'modal-header') do
concat content_tag(:button,(content_tag(:i, "",:class => 'fontello-icon-cancel-1')),:class => 'close', :"data-dismiss" => 'modal', :"aria-hidden" => 'true')
concat content_tag(:h4, header_text)
end
end
def modal_header(header_text)
content_tag(:div, :class => 'modal-header') do
concat content_tag(:button,:class => 'close', :"data-dismiss" => 'modal', :"aria-hidden" => 'true') do
concat content_tag(:i, "",:class => 'fontello-icon-cancel-1')
end
concat content_tag(:h4, header_text)
end
end
最佳答案
您无需使用 concat
.
每个 Rails 助手都返回一个包含一些 html 的字符串:
tag(:br) # "<br>"
# "<br>"
def br
tag(:br)
end
# "<button>Close</button><button>Save</button>"
def modal_buttons
content_tag(:button, "Close") + content_tag(:button, "Save")
end
# "<button>Save</button>"
def modal_buttons
content_tag(:button, "Close") # this won't do anything
content_tag(:button, "Save")
end
# "<div><button>Close</button><button>Save</button></div>"
def modal_footer
content_tag(:div) do
# what block returns will be inside the div
content_tag(:button, "Close") + content_tag(:button, "Save")
end
end
def modal_body
content_tag(:div) do
modal_header + yield + modal_footer
end
end
关于ruby-on-rails - 深度嵌套的 content_tag、concat 和 rails 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15894526/
span_tag = content_tag(:span, class: "123") 它生成以下 html: {:class=>"123"} 我想知道,这是怎么回事?不应该
在使用 Rails 时,我应该为所有 html 标签使用 content_tag 助手吗? 将 content_tag 用于 Header 标签这样简单的东西是 Rails 的方式吗? "bla b
content_tag有什么区别和 tag在 Rails 中?从我读过的内容来看,似乎 content_tag需要将内容传递给它。 为什么这很重要?句法上有什么不同,以及我会在哪些情况下使用一种和另一
我有一个Rails 3帮助器,它需要生成可能在属性值中包含HTML实体的元素。例如: content_tag(:input, nil, :type => 'button', :value => 'Re
我正在尝试制作一个带有基础工具提示的元素,它需要 data-tooltip图标元素中的属性(例如 )。 我已经设法获得了最后一个属性 ( aria-haspopup ),但我不知道如何为 data-
我正在尝试将内容标签嵌套到自定义帮助器中,以创建如下内容: A Label 请注意,输入不与表单关联,它将通过 JavaScript 保存。 这是助手(它除了显示 html 之外还有
跟着这个 Jose Valim发布后,我最终得到了来自对 #content_tag 的调用的 HTML 信息的嵌套元组。 {:safe, [60, "div", " class=\"form-gro
跟着这个 Jose Valim发布后,我最终得到了来自对 #content_tag 的调用的 HTML 信息的嵌套元组。 {:safe, [60, "div", " class=\"form-gro
我的项目中有这样的结构: content_tag(:div, class: "some-class", role: "alert") do content_tag(:button, type: :
如何使用 content_tag 帮助程序获得以下 html 输出? 1 2 3 4 5 这是我目前拥有的 content_tag(:ul) d
我有一个相对简单的问题。我有这样一行代码: content_tag(:span, some_variable, { :class => span_class }) 但是如果变量span_class为零
我想生成类似的 html, Label Text Some Text 1 Some Text 2 ... 我想要一个 helper ,比如, label_for 'fiel
我编写了一个 Rails 助手来创建一个嵌套的 HTML 列表。但是,这没有正确呈现。请问我做错了什么? 助手 content_tag :ul do [1, 2].each do |x|
我想在 Rails 代码中的 (:i) 标签中添加一个类: 我希望最终代码如下所示: 最佳答案 @Dogbert 是正确的,除了你需要传递 nil 作为第二个参数,因为 content_tag 被
我有带有“td”的 content_tag,我必须在 ruby 上编写代码。我是这样写的: content_tag :td, class: "text-right", style: "width:
我知道在 ruby-on-rails 中有一个使用 content_tag 函数的选项,它有助于生成一个 html 标签。与我合作的公司中的一些 Rails 开发人员告诉我,这是“方便且正确”的方
假设我在 application_helper.rb 中有这个助手 def my_helper(content = nil, *args, &block) content_tag(:div, c
我编写了以下助手: def section_to_html (block) case block[0].downcase when "paragraph" bl
正如您所看到的,我有一个助手,我正在尝试将其呈现给 View 。 嵌套的 content_tags 不呈现我与此标签的脱节是什么? def draw_calendar(selected_month,
我很难弄清楚如何让 content_tag 与 HAML 一起工作。 如果没有 HAML,我会做这样的事情: 我尝试了以下方法,但无济于事: %div#instagrams{ instagrams
我是一名优秀的程序员,十分优秀!