繁体   English   中英

我在Rails中找不到助手

[英]I can't figure out helper in Rails

大家好,我是新手。 我编写了这个小的测试代码来学习Rails中的帮助程序:

应用程序/佣工/ home_helper.rb

module HomeHelper
  def show(var)
    yield var
  end
end

应用程序/视图/家/ index.html.rb

<%= show('hello world')%>

当我导航到url localhost:3000/home/index时,html源中什么也没有,我做错了什么?

这里有几件事要注意:

module HomeHelper
  def show(var)
    yield var
  end
end

首先,您要使用yield ,它将控制权传递给该方法给出的块。 但是,然后您可以无障碍地调用该方法:

<%= show('hello world') %>

如果您有一个障碍,它将看起来像这样:

<%= show('hello world') do |v| %>
  <%= v %>
<% end %>

如您所料,这将输出“ hello world”。

最像您的意思是:

module HomeHelper
  def show(var)
    var
  end
end

这将返回您传递的值,并将其输出到响应流。

虽然块帮助程序通常在大多数情况下对于使代码干燥有用,但是您希望部分布局

你为什么要屈服? 简单的回报:

def show(var)
  var
end

除去yield yield是区块-您的意思是return吗? (它是可选的)。

另一个(可能更好)的选项是在控制器中设置显示文本。

home_controller.rb

HomeController < ActionController 

  # Other controller code...

  def index
    @text = "Hello, world!"
  end

end

index.html.erb

<%= @text %>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM