在Rails博客中创建和显示用户时遇到问题

马克·赫斯塔德

我尝试创建一个简单的Rails博客时尝试创建和显示错误时会遇到各种各样的错误,请告诉我是否看到明显的内容,或者是否需要我在尝试输入一些代码后发布更多代码的事情,但无济于事。谢谢

浏览器给我这个错误

找不到没有ID的用户

在我的“ logged_in?”中 显示的方法

def logged_in?
   @current_user ||= User.find(session[:user_id])
end

会话控制器

class SessionsController < ApplicationController
def new
end

  def create
    user = User.find_by(email: params[:email])
    if user && user.authenticate(params[:password])
     session[:user_id] = user.id
     flash[:success] = "You are logged in"
     redirect_to root_path
    else
  render action: 'new'
    flash[:error] = "There was a problem logging in. Please check your email and password"
   end
  end
end


def index
 @users = User.all
end

def show
end


def new
 @user = User.new
end


def edit
end


def create
  @user = User.new(user_params)
   if @user.save
     session[:user_id] = @user.id
     flash[:notice] = "You have registered, please login"
     redirect_to login_path
  else
   render :new
  end
end



  def update
     respond_to do |format|
      if @user.update(user_params)
       format.html { redirect_to @user, notice: 'User was successfully updated.' }
       format.json { head :no_content }
      else
       format.html { render action: 'edit' }
       format.json { render json: @user.errors, status: :unprocessable_entity }
     end
   end
  end


def destroy
    @user.destroy
    respond_to do |format|
     format.html { redirect_to users_url }
     format.json { head :no_content }
   end
end

private

def set_user
  @user = User.find(params[:id])
end


  def user_params
   params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation)
  end
end

物品管制员

  class ArticlesController < ApplicationController

   http_basic_authenticate_with name: "dhh", password: "secret", except: [:index, :show]

 def new
   @article = Article.new
 end

 def index
  @article = Article.all
 end

  def create  
    @article = Article.new(article_params)
     if @article.save
    redirect_to @article
     else
    render 'new'
     end
  end

 def edit
   @article = Article.find(params[:id])
 end

 def update
   @article = Article.find(params[:id])
   if @article.update(article_params)
     redirect_to @article
   else
  render 'edit'
  end
 end

  def show
    @article = Article.find(params[:id])
  end

 def destroy
   @article = Article.find(params[:id])
   @article.destroy

   redirect_to articles_path
 end



 private

 def article_params
   params.require(:article).permit(:title, :text, :image)
 end
end

应用程序助手

   module ApplicationHelper

 def logged_in?
   @current_user ||= User.find(session[:user_id])
  end
 end
社交病

您面临的问题session[:user_id]nil通常,一种设置当前用户的方法称为current_userlogged_in?不是一种方法设置的用户实例一个好名字,因为人们会认为一个问号结尾的方法将返回一个truefalse而不是用户实例。

此外,设置当前用户通常使用来完成before_filter另外,您要在设置当前用户之前(例如current_user尚不存在)在执行过滤操作之前跳过此类操作

最后,如果找不到用户,我宁愿优雅地失败。您可以通过将代码更改为User.find_by_id(session[:user_id])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Rails博客中创建和显示用户时遇到问题

来自分类Dev

在 Google 日历中创建和活动时遇到问题

来自分类Dev

在Laravel中创建用户时遇到问题

来自分类Dev

在C#中创建用户控件时遇到问题

来自分类Dev

在C ++中从多维向量创建和获取值时遇到问题

来自分类Dev

JDBC在为mysql创建用户时遇到问题

来自分类Dev

Angular Material 2:在函数中显示新创建的数组时遇到问题

来自分类Dev

在Android中的SQLite中创建表时遇到问题

来自分类Dev

在pygame中显示文本时遇到问题

来自分类Dev

在pygame中显示新项目时遇到问题

来自分类Dev

我在OpenGL中显示图像时遇到问题

来自分类Dev

在活动中显示ViewPager时遇到问题

来自分类Dev

在Clojure中创建Uberjar时遇到问题

来自分类Dev

在iOS应用中创建帐户原型时遇到问题

来自分类Dev

在Windows Phone中创建类的对象时遇到问题

来自分类Dev

我在 Angular 中创建模块时遇到问题

来自分类Dev

安装Ghost博客时遇到问题-Digital Ocean

来自分类Dev

显示javascript数组时遇到问题

来自分类Dev

创建库包时遇到问题

来自分类Dev

创建Laravel查询时遇到问题

来自分类Dev

创建外键时遇到问题

来自分类Dev

创建双重动画时遇到问题

来自分类Dev

创建ESLint CLIEngine时遇到问题

来自分类Dev

创建库包时遇到问题

来自分类Dev

创建Laravel查询时遇到问题

来自分类Dev

创建ViewController实例时遇到问题

来自分类Dev

创建isPrime函数时遇到问题

来自分类Dev

创建特定模式时遇到问题

来自分类Dev

使用HTTPie将新用户发布到Rails API时遇到问题