当我将form_for与主页表单元素一起使用时,我收到错误“表单中的第一个参数不能包含nil或为空”。不知道我做错了什么。
home.html.erb
<%= form_for @form do |f| %>
<div class="form-group">
<%= f.text_field :userInput, placeholder: "Press 'Enter' to move on.", class: 'form-control' %>
</div>
<% end %>
forms_controller.rb
class FormsController < ApplicationController
def new
@form = Form.new
end
def create
@form = Form.new(form_params)
@form.save!
end
private
def form_params
params.require(:form).permit(:userInput)
end
end
编辑:所以我建议将代码从FormsController移动到已经呈现主页的PagesController,但同样的错误仍然存在。这是PagesController:
class PagesController < ApplicationController
def home
end
def new
@form = Form.new
end
def create
@form = Form.new(form_params)
@form.save!
end
private
def form_params
params.require(:form).permit(:userInput)
end
end
答案 0 :(得分:0)
FormController
呈现home.erb.html
视图吗?控制器只有new
和create
操作,因此我认为该视图应该被命名为new.erb.html
,或者应该抛出一个错误,说该视图不是&# 39; t found。
在出现此错误的情况下,似乎另一个控制器正在呈现视图,其中该控制器应该设置@form = Form.new
实例变量。
您能确认home.erb.html
居住的路径吗?