我正在添加查询折叠,但是在添加代码时,我收到指向行<%= form_for @search, :class => 'content' do |f| %>
的First argument in form cannot contain nil or be empty
错误
我用用户和搜索控制器更新了帖子,以获得更好的外观。
索引.html.rb:
<%= render 'searches/new' %>
/searches/_new.html.erb:
<%= form_for @search do |f| %>
<div class="field">
<%= f.label :gender %><br />
<%= f.select :gender, ['male', 'female'], :include_blank => true %>
</div>
<div class="field">
<%= f.label :state %><br />
<%= f.text_field :state %>
</div>
<div class="actions"><%= f.submit "Search" %></div>
<% end %>
原始源代码:
<div class="layer1">
<p class="heading">Header-1 </p>
<div class="content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit orem ipsum dolor sit amet, consectetuer adipiscing elit</div>
</div>
用户控制器:
def settings
@user = User.find(params[:id])
end
def new
@user = User.new
end
def show
@user = User.find(params[:id])
end
def edit
@user = User.find(params[:id])
end
def index
@users = User.all
end
搜索控制器:
def new
@search = Search.new
end
def create
@search = Search.new(params[:search])
if @search.save
redirect_to @search
else
render 'new'
end
end
def show
@search = Search.find(params[:id])
@users = @search.users
end
end
错误:
表单中的第一个参数不能包含 nil 或为空错误 指向行 <%= form_for @search, :class => 'content' do |f|%>
表示@search
为零。在加载此视图之前,请确保在控制器的相关操作中设置它。由于您尚未共享控制器特定代码,因此很难确定设置@search
实例变量的确切位置。
更新
在用户控制器#索引中添加@search
def index
@users = User.all
@search = Search.new
end
将views/users/index.html.erb
中的呈现调用更新为
<%= render partial: 'searches/new', locals: {search: @search} %>
此外,在您的部分views/users/searches/_new.html.erb
将form_for
更新为
<%= form_for search do |f| %>