加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何使用块创建帮助程序?

发布时间:2020-12-16 21:11:12 所属栏目:百科 来源:网络整理
导读:我想做一个像下面这样的帮手. def my_div some_options,block # How do I print the result of the block?end 解决方法 你应该使用 CaptureHelper. def my_div(some_options,block) # capture the value of the block a string content = capture(block) # c
我想做一个像下面这样的帮手.
def my_div some_options,&block
  # How do I print the result of the block?
end

解决方法

你应该使用 CaptureHelper.
def my_div(some_options,&block)
  # capture the value of the block a string
  content = capture(&block)
  # concat the value to the output
  concat(content)
end

<% my_div([]) do %>
  <p>The content</p>
<% end %>


def my_div(some_options,&block)
  # capture the value of the block a string
  # and returns it. You MUST use <%= in your view.
  capture(&block)
end

<%= my_div([]) do %>
  <p>The content</p>
<% end %>

如果需要连接输出,请使用capture concat.
如果需要捕获然后重用内容,请使用捕获.如果你的块没有明确地使用<%=,那么你必须调用concat(首选方式). 这是一个隐藏内容的方法示例,如果用户不是管理员.

def if_admin(options = {},&block)
  if admin?
    concat content_tag(:div,capture(&block),options)
  end
end

<% if_admin(:style => "admin") do %>
<p>Super secret content.</p>
<% end %>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读