【发布时间】:2015-08-14 07:07:39
【问题描述】:
我正在创建搜索表单,并且我已经创建了搜索控制器和其他名为用户的控制器。 这是search_controller
的代码def search
if params[:q]
@users = User.q(params[:q]).order("created_at DESC").paginate(page: params[:page])
else
@users = User.all.order('created_at DESC').paginate(page: params[:page])
end
end
这是搜索表单
<%= form_tag search_path, :method => 'get' do %>
<%= text_field_tag :q, params[:q] %>
<%= submit_tag "Search", :name => nil %>
<% end %>
但是当我搜索时,我收到undefined method 'name' for nil:NilClass 错误。这是users_controller
class UsersController < ApplicationController
before_action :logged_in_user, only: [:index, :edit, :destroy]
def index
@users = User.paginate(page: params[:page])
end
def show
@user = User.find(params[:id])
@archings = @user.archings.paginate(page: params[:page])
end
def new
@user = User.new
end
def destroy
User.find(params[:id]).destroy
flash[:success] = "User deleted"
redirect_to users_url
end
def create
@user = User.new(user_params)
if @user.save
log_in @user
flash[:success] = "Welcome to the Arch"
redirect_to @user
else
render 'new'
end
end
def edit
@user = User.find(params[:id])
end
private
def user_params
params.require(:user).permit(:name, :email, :password,
:password_confirmation)
end
def logged_in_user
unless logged_in?
store_location
flash[:danger] = "Please log in."
redirect_to login_url
end
end
end
谁能告诉我哪里出错了?
PS:我是初学者,不熟悉 rails 和 ruby。
【问题讨论】:
-
请发布堆栈跟踪以找到错误的文件和行
-
你为什么要切掉所有多汁的部分?
标签: ruby-on-rails ruby search