首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NoMethodError in BlogsController#show

NoMethodError in BlogsController#show
EN

Stack Overflow用户
提问于 2017-08-15 21:11:18
回答 1查看 56关注 0票数 0

我正在写我的一个项目博客。我是一个使用Rails的新手开发人员..。

我安装了一个弹射宝石,然后为auth安装了设计宝石。我认为这是一个错误,但我不知道到底发生了什么。我可以让post显示在我的索引视图上,但是当我试图单击到show视图的链接时,它会出现以下错误.救命啊!

下面是我的控制器,路线和型号..。

我不断犯的错误是

NoMethodError in BlogsController#show 大小写过滤器当符号lambda {区目标,_,&blk \ target.send过滤器,&blk}当字符串l= eval "lambda {颇具值#{ filter } }“时,lambda {x目标,target.instance_exec(value,&l) }.

我的控制器

代码语言:javascript
运行
复制
class BlogsController < ApplicationController
  before_action :set_blog, only: [:show, :edit, :update, :destroy]
  before_action :authenticate_user!, only: [:new, :create, :edit, :update, :destroy]

  def index
    @blog = Blog.all 
  end

  def new 
    @blog = Blog.new
  end 

  def create
    current_user.blogs.create(blog_params)
    redirect_to blogs_path
  end 

  def show 
    @blog = Blog.friendly.find(params[:id])
  end

  def edit
    @blog = Blog.friendly.find(params[:id])
    if @blog.user != current_user
      return render text: 'Not Allowed', status: :forbidden
    end
  end

  def update
    @blog = Blog.friendly.find(params[:id])

    if @blog.user != current_user
      return render text: 'Not Allowed', status: :forbidden
    end

    @blog.update_attributes(blog_params)
    redirect_to root_path
  end

  def destroy
    @blog = Blog.friendly.find(params[:id])
    if @blog.user != current_user
      return render text: 'Not Allowed', status: :forbidden
    end

    @blog.destroy
    redirect_to root_path
  end

private

  def blog_params
    params.require(:blog).permit(:name, :description)
  end
end

路由

代码语言:javascript
运行
复制
Rails.application.routes.draw do
  devise_for :users
  resources :blogs
  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
  root 'portfolio#index'

end

模型

代码语言:javascript
运行
复制
class Blog < ApplicationRecord
  extend FriendlyId
  friendly_id :name, use: :slugged

  belongs_to :user
end
EN

回答 1

Stack Overflow用户

发布于 2017-08-15 21:21:09

看起来,您正在使用友好的id gem,请确保您根据gem readme正确地配置了您的博客模型,并运行迁移,以便将段塞字段包含到模型中。

此外,如果您有以前的记录没有段塞,打开您的rails控制台并运行:

代码语言:javascript
运行
复制
Blog.find_each(&:save)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45701613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档