Ruby on rails 这是什么错误ActiveRecord::语句在ArticlesController#show中无效?

Ruby on rails 这是什么错误ActiveRecord::语句在ArticlesController#show中无效?,ruby-on-rails,friendly-id,Ruby On Rails,Friendly Id,错误: 代码: SQLite3::SQLException: no such column: articles.slug: SELECT "articles".* FROM "articles" WHERE "articles"."slug" = '33' ORDER BY "articles"."id" ASC LIMIT 1 @article=article.friendly.find(参数[:id]) 这将在数据库的articles表中查找slug列,因此您需要创建它,并创建迁移来完成此

错误:

代码:

SQLite3::SQLException: no such column: articles.slug: SELECT "articles".* FROM "articles" WHERE "articles"."slug" = '33' ORDER BY "articles"."id" ASC LIMIT 1

@article=article.friendly.find(参数[:id])

这将在数据库的
articles
表中查找
slug
列,因此您需要创建它,并创建迁移来完成此操作

def show
  @article = Article.friendly.find(params[:id])
  @category = Category.find(@article.category_id)
  @comment = Comment.new
end
最好为该属性添加一个
索引
,因为它将用于查找记录

$ rails g migration add_slug_to_articles slug:string

我尝试使用名为friendly的gem,我在show action中使用friendly关键字,但我遇到了这样的错误有人能解决我的错误吗?您可能忘记了包括生成的迁移。运行
rails生成友好的\u id
,然后运行
rails db:migrate
。参考文档。是的,我已经这样做了,但我得到了相同的错误是的,我这样做了,尽管它在url中显示文章的id而不是文章的名称……怎么办?@Shivakumara m你能告诉我你是如何来
显示
操作的吗,我的意思是,如果你使用
link\u链接到
那是什么
url
,它会重定向它,显示动作。请分享
链接到
你应该像这个例子一样使用
如果你正在传递
文章,请交叉检查它。
id
属性的slug
class AddSlugToArticles < ActiveRecord::Migration
  def change
    add_column :articles, :slug, :string
    add_index :articles, :slug
  end
end
@article = Article.friendly.find(params[:id])