Поэтому я пытаюсь сделать ссылку на профиль пользователя! Итак, у меня есть это в контроллере пользователя:
class UsersController < ApplicationController
def new
#defining the "@user" object for the form_for
@user = User.new
end
#defining a function for the "show" html file
def show
#get user id by URL address
@user = User.find(params[:id])
end
#handling user login succes or failure
def create
@user = User.new(params[:user])
if @user.save
#using "flash" variable Ruby
#flash[:success] = "Welcome to the Sample App!" <<< use this !!
#render success page
redirect_to @user
else
#render failure page (using error partial page)
render 'new'
end
end
#mine to show user profile
def show_user
render 'show'
end
end
и в моем маршрутах .rb я получил:
DemoApp::Application.routes.draw do
get "intergration_test/authentication_pages"
#Removed!
#get "users/new"
#ROOT page
root to: 'static_pages#home'
#My routes
match '/user_profile', to: 'users#show_user'
#REST architecture for users
resources :users
#including the Sessions action
resources :sessions, only: [:new, :create, :destroy]
match '/signup', to: 'users#new'
match '/signin', to: 'sessions#new'
#Note the use of via: :delete for the signout route, which indicated that it should be invoked using an HTTP DELETE request
match '/signout', to: 'sessions#destroy', via: :delete
end
Так почему же
#mine to show user profile
def show_user
render 'show'
end
возвращает мне ошибку:
undefined method `email' for nil:NilClass
это как пользователь нулевой! Я уже вошел в систему! поэтому у меня должен быть активный пользователь.
даже если я использую redirect_to @user
, это не работает! помочь?