如何解决新字段在localhost上有效,但在Heroku上无效
我最近通过image_url
字段向pin1
表的pin4
表中添加了blogs
和 create_table "blogs",force: :cascade do |t|
t.string "title"
t.string "teaser"
t.text "body"
t.boolean "published",default: false
t.datetime "published_at"
t.string "video_url"
t.bigint "spree_user_id",null: false
t.bigint "resource_id",null: false
t.string "slug"
t.datetime "created_at",precision: 6,null: false
t.datetime "updated_at",null: false
t.string "image_url"
t.string "pin1"
t.string "pin2"
t.string "pin3"
t.string "pin4"
t.index ["resource_id"],name: "index_blogs_on_resource_id"
t.index ["spree_user_id"],name: "index_blogs_on_spree_user_id"
。
我将它们添加到架构中:
def blog_params
params.require(:blog).permit(
:title,:teaser,:body,:image,:published,:published_at,:subcategory_ids,:image_url,:video_url,:pin1,:pin2,:pin3,:pin4,:user_id,:resource_id,:slug
)
end
我将它们添加到控制器参数中:
<%= form.label :image_url %>
<%= form.text_field :image_url,class: "form-control" %>
...
<%= form.label "Pinterest Pin Url 1" %>
<%= form.text_field :pin1,class: "form-control" %>
并输入表格:
<% if @blog.pin1 %>
<%= image_tag @blog.pin1,class: "pin shadow-bottom",style: "display: inline-block" %>
<% end %>
一切正常,它们显示在我的本地主机上:
heroku run rake db:migrate
但是在Heroku中,值不保存。我没有收到任何错误,服务器日志或其他错误。我没有犯错noteID
。
任何人都可以看到出了什么问题吗?
解决方法
您可以使用psql
稍微检查一下数据库:
heroku pg:psql
在SQL提示符下,您可以查看表以查看是否应用了更改:
\d blogs
要注意的一件事是,在生产环境中,Rails会在应用程序启动时缓存数据库架构,因此,如果您运行了迁移但由于迁移是使用rake db:migrate
运行而没有重新启动应用程序,则ActiveRecord将不会对新领域的认识。您可以使用heroku restart
重新启动应用程序,然后检查是否有作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。