为什么我不能从yield中输入参数?
错误:
undefined local variable or method `options' for #<#<Class:0x007fd1bd8735e8>:0x007fd1ba3e4fe8>
/app/helpers/bootstrap_form_helper.rb
...
def inline
options = "row_disable"
content_tag(:div, class: "row test") { yield(options) }
end
...
/app/views/signup/new.html.erb
...
<%= inline do %>
<%= options %>
<%= person_f.text_field(:last_name, control_col: 7) %>
<% end %>
...
答案 0 :(得分:0)
您无法访问options
方法中定义的本地变量,inline
。您必须通过inline
方法访问传递给块的参数,为此,您需要让new.html.erb中的块接受options
参数:
...
<%= inline do |options| %>
<%= options %>
<%= person_f.text_field(:last_name, control_col: 7) %>
<% end %>
...
为了进一步说明,您甚至不需要在new.html.erb中将其称为options
。以下也可以:
...
<%= inline do |foo| %>
<%= foo %>
<%= person_f.text_field(:last_name, control_col: 7) %>
<% end %>
...