Rails上未定义的局部变量或方法“ f”

时间:2019-12-19 03:48:05

标签: ruby-on-rails

  

我正在制作一个非常简单的Rails程序,并遇到此错误。   [[1,2,3],[1,2],[2,3],[1],[2],[3]] 错误出现在undefined local variable or method f中,以下是代码

form.html.erb
  

那么,您能给我一些想法吗?我是新手,对此错误非常困惑。

1 个答案:

答案 0 :(得分:-1)

您应该在问题中发布form.html.erb文件,以帮助我们为您提供帮助。

无论如何,您在ERB文件中声明表单的方式可能有误。

确保像这样声明f变量:

<%= form_for @model_instance do |f| %>
  <div class="field">
    <%= f.check_box :public, id: :public, class: "filled-in" %>
    <label for="public">Public</label>
  </div>
<% end %>

还请确保您在缩进中没有犯错。

虽然上述方法可行,但以下方法却无效:

<%= form_for @model_instance do |f| %>
<div class="field">
<%= f.check_box :public, id: :public, class: "filled-in" %>
<label for="public">Public</label>
</div>
<% end %>

这是因为<%= form_for @model_instance do |f| %>行打开了一个Ruby块,其中f变量可用,但不在变量之外。

不缩进代码会将其从该块中排除,即使您的代码在<%= form_for @model_instance do |f| %><% end %>之间。