微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

新字段在localhost上有效,但在Heroku上无效

如何解决新字段在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 举报,一经查实,本站将立刻删除。