I am creating search form, and I have created search controller and other controller named as user. Here is the code of 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
Here is the search form
<%= form_tag search_path, :method => 'get' do %>
<%= text_field_tag :q, params[:q] %>
<%= submit_tag "Search", :name => nil %>
<% end %>
But when I search I am getting undefined method 'name' for nil:NilClass error.
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
Can anyone tell me where I am doing mistake?
PS: I am beginner and new to rails and ruby.
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire