LocalJumpError:没有给出块(yield)rails console

时间:2014-10-24 04:40:44

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

我需要在rails控制台中尝试这个帮助方法,但是我收到错误 对不起,我是新手。

juan:~/workspace/sample_app$ rails c
Loading development environment (Rails 4.2.0.beta2)
2.1.1 :001 > helper.provide(:title,"Home")
 => nil 
2.1.1 :002 > yield :title
LocalJumpError: no block given (yield)

我想在rails控制台中重现名为provide

的视图助手方法中的行为

实施例

 <% provide(:title, "Home") %>
<!DOCTYPE html>
<html>
  <head>
    <title><%= yield(:title) %> | Ruby on Rails Tutorial Sample App</title>
  </head>
  <body>
    <h1>Sample App</h1>
    <p>
      This is the home page for the
      <a href="http://www.railstutorial.org/">Ruby on Rails Tutorial</a>
      sample application.
    </p>
  </body>
</html>

1 个答案:

答案 0 :(得分:1)

只有在使用块调用的方法内时,才能使用yield。在rails控制台中,您处于主环境中,没有任何阻塞,这就是您收到该错误的原因。

您可以查看this answer,了解yield在视图中的工作原理。

执行您尝试执行的操作的最佳方法是在渲染时将调试器放在视图中,然后测试所提供的功能。