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

NoMethodError in Articles#show
EN

Stack Overflow用户
提问于 2017-02-09 22:04:31
回答 3查看 437关注 0票数 0

我在使用Rails http://tutorials.jumpstartlab.com/projects/blogger.html入门教程。

我已经完成了教程,现在我正在用我所做的来创建一个学校作业的站点,我只想在db/migrate/20161005160810_ create _articles.rb上添加"data“文件,但是我收到了这个消息错误。

代码语言:javascript
复制
Showing /home/ubuntu/workspace/app/views/articles/show.html.erb where line #12 raised:
       undefined method `data' for #<Article:0x007f8bcab2cfe8>
        Extracted source (around line #12):

        <p>
          <strong>Data:</strong>
          <%= @article.data %>
        </p>

我的articles_controller是这样的

代码语言:javascript
复制
        class ArticlesController < ApplicationController

      http_basic_authenticate_with name: "mateus", password: "mateus", except: [:index, :show]

      def index
        @articles = Article.all
      end

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

      def new
        @article = Article.new
      end

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

      def create
        @article = Article.new(article_params)

        if @article.save
          redirect_to @article
        else
          render 'new'
        end
      end

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

        if @article.update(article_params)
          redirect_to @article
        else
          render 'edit'
        end
      end

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

        redirect_to articles_path
      end


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

    end

有人能帮我吗?

Edit1:我用了rake db:migrate:status,然后我得到了这个:

代码语言:javascript
复制
mateusjs:~/workspace (master) $ rake db:migrate:status

database: app_development

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20161005160810  Create articles
   up     20161005185521  Create comments
   up     20170209222858  Parte2
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-02-09 22:20:46

schema.rb是否显示您的Article具有data属性?测试它的一个快速方法是进入您的控制台

代码语言:javascript
复制
$ bundle exec rails console

> Article

看看data是否在那里。

如果没有,你可能需要做两件事;

  1. 进行迁移,也就是说,到终点站去做一些类似的事情;

$ bundle exec rails g migration AddDataToArticle data:integer

  1. 在完成这一步之后,您需要bundle exec rails db:migrate
票数 0
EN

Stack Overflow用户

发布于 2017-02-09 22:22:58

您是否创建了一个新的迁移,比如:

代码语言:javascript
复制
rails g migration AddDataToArticle data:binary

rails db:migrate

data:binary,因为我假设应该存储“文件”本身。

或者您是否更改了已经定义的迁移。由于目前没有data属性,所以ruby假设这应该是一个方法。

你能把你的迁徙附加到你的问题上吗?

票数 0
EN

Stack Overflow用户

发布于 2017-02-09 23:11:12

根据对问题的描述和您试图完成的任务,您忘记了将迁移应用到数据库中。

如果更改了现有的迁移,则需要通过运行以下命令(假设您运行的是Rails 5.xx)来重新应用它:

代码语言:javascript
复制
rails db:migrate:up VERSION=20161005160810

其他Rails版本应该接受以下命令:

代码语言:javascript
复制
rake db:migrate:up VERSION=20161005160810

如果创建了一个新的迁移,则仍然需要应用迁移。下面是在Rails 5.xx中应该做的事情:

代码语言:javascript
复制
rails db:migrate

其他Rails版本应该接受以下命令:

代码语言:javascript
复制
rake db:migrate

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42147755

复制
相关文章

相似问题

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