gpt4 book ai didi

ruby-on-rails - 从 Heroku 运行应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 16:21:05 24 4
gpt4 key购买 nike

我已经构建了我的 Rails 应用程序并将其推送到 Heroku 上线。问题是我无法创建或更新事件。尝试更新或创建时,我收到“出现问题”的消息。这是我的 heroku 日志中的错误:

2015-10-23T13:38:50.014461+00:00 app[web.1]:    (1.8ms)  BEGIN
2015-10-23T13:38:50.039168+00:00 app[web.1]: (1.9ms) ROLLBACK
2015-10-23T13:38:50.043567+00:00 app[web.1]:
2015-10-23T13:38:50.043570+00:00 app[web.1]: TypeError (no implicit conversion of Array into String):
2015-10-23T13:38:50.043571+00:00 app[web.1]: app/controllers/events_controller.rb:19:in `create'
2015-10-23T13:38:50.043572+00:00 app[web.1]:
2015-10-23T13:38:50.043572+00:00 app[web.1]: 2015-10 23T13:38:50.030951+00:00 app[web.1]: SQL (2.4ms) INSERT INTO "events" ("name", "description", "picture", "datestart", "dateend", "timestart", "timeend", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING "id" [["name", "New Event w/Picture"], ["description", "adlkfjasdlkfjasjdkf\r\nadflkajsdfkajsdf\r\nadflkajdfa\r\ndfadf\r\nadfajsdfaf"], ["picture", "photo.jpg"], ["datestart", "2015-10-23"], ["dateend", "2015-10-23"], ["timestart", "2015-10-23 13:38:00.000000"], ["timeend", "2015-10-23 13:38:00.000000"], ["created_at", "2015-10-23 13:38:50.020179"], ["updated_at", "2015-10-23 13:38:50.020179"]]
2015-10-23T13:38:50.040280+00:00 app[web.1]: Completed 500 Internal Server Error in 696ms (ActiveRecord: 7.3ms)
WARNING: Toolbelt v3.42.20 update available.

当我对现有事件进行更新时,我遇到了同样的错误。但是它引用了“更新”操作。

这是 events_controller.rb 文件中创建操作的代码:

def create
@event = Event.new(event_params)

if @event.save
flash[:success] = "Your event was created successfully!"
redirect_to events_path
else
render :new
end
end

def event_params
params.require(:event).permit(:name, :description, :datestart, :dateend, :timestart, :timeend, :cost, :picture)
end

这里是 event.rb 代码:

class Event < ActiveRecord::Base
default_scope { order('datestart ASC') }
belongs_to :user
has_many :regs

mount_uploader :picture, PictureUploader
validate :picture_size

private
def picture_size
if picture.size > 5.megabytes
errors.add(:picture, "should be less that 5MB")
end
end
end

我可以毫无问题地在开发端运行该应用程序 (Cloud9)。

任何帮助都会很有帮助。

最佳答案

有趣...感谢发帖!

看起来问题不在于你的代码,更多的是后端的东西(可能是数据库列设置或其他东西)。


调试

我看到你已经修好了。

如果再次出现此类错误,您可以采取以下措施:

  1. 重新启动您的服务器(可能存在缓存问题或其他问题)。我相信您可以使用 heroku restart -a app_name

  2. 来做到这一点
  3. 检查您的数据库 -- pgsqlmysql 相似但略有不同。如果您要存储“描述”数据,则最好在创建架构时使用 t.text

  4. 删除图片上传 -- 如果您使用的是 carrierwave,请注释掉 mount_uploader :picture, PictureUploader & validate :picture_size 行——这将阻止图像被处理,这可能是一个问题。


无论哪种方式,对于 Heroku,都可能会出现许多小问题。

虽然它是一个很棒的平台,但您必须记住您需要一个生产数据库(并且它不会与您的开发数据库具有相同的数据),并且必须“预热”(如果您正在免费套餐)

关于ruby-on-rails - 从 Heroku 运行应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33311140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com