我在使用Rails http://tutorials.jumpstartlab.com/projects/blogger.html入门教程。
我已经完成了教程,现在我正在用我所做的来创建一个学校作业的站点,我只想在db/migrate/20161005160810_ create _articles.rb上添加"data“文件,但是我收到了这个消息错误。
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是这样的
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,然后我得到了这个:
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发布于 2017-02-09 22:20:46
schema.rb是否显示您的Article具有data属性?测试它的一个快速方法是进入您的控制台
$ bundle exec rails console
> Article看看data是否在那里。
如果没有,你可能需要做两件事;
$ bundle exec rails g migration AddDataToArticle data:integer
bundle exec rails db:migrate发布于 2017-02-09 22:22:58
您是否创建了一个新的迁移,比如:
rails g migration AddDataToArticle data:binary
rails db:migratedata:binary,因为我假设应该存储“文件”本身。
或者您是否更改了已经定义的迁移。由于目前没有data属性,所以ruby假设这应该是一个方法。
你能把你的迁徙附加到你的问题上吗?
发布于 2017-02-09 23:11:12
根据对问题的描述和您试图完成的任务,您忘记了将迁移应用到数据库中。
如果更改了现有的迁移,则需要通过运行以下命令(假设您运行的是Rails 5.xx)来重新应用它:
rails db:migrate:up VERSION=20161005160810其他Rails版本应该接受以下命令:
rake db:migrate:up VERSION=20161005160810如果创建了一个新的迁移,则仍然需要应用迁移。下面是在Rails 5.xx中应该做的事情:
rails db:migrate其他Rails版本应该接受以下命令:
rake db:migrate希望这能有所帮助!
https://stackoverflow.com/questions/42147755
复制相似问题