Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 从Heroku运行应用程序_Ruby On Rails_Ruby_Ruby On Rails 4_Heroku - Fatal编程技术网

Ruby on rails 从Heroku运行应用程序

Ruby on rails 从Heroku运行应用程序,ruby-on-rails,ruby,ruby-on-rails-4,heroku,Ruby On Rails,Ruby,Ruby On Rails 4,Heroku,我已经构建了我的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:0

我已经构建了我的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
class事件5.MB
错误。添加(:图片,“应小于5MB”)
结束
结束
结束
我可以在开发端毫无问题地运行应用程序(Cloud9)


任何帮助都会很有帮助。

我不知道,但你试过了吗?:

def create
  event_params[:description] = event_params[:description].to_s
  @event = Event.new(event_params)

  if @event.save
    flash[:success] = "Your event was created successfully!"
    redirect_to events_path
  else
    render :new
  end
end
我知道这很难看,但这只是为了测试。在我看来,您在开发中使用SQLite,在生产中使用PostgreSQL,这可能会导致此问题


description参数最初是一个数组?如果是这样,将其显式转换为字符串可能会起作用。如果您正试图将另一个参数从数组转换为字符串,请尝试以这种方式进行转换,并查看它是否有效。我不确定。

有意思。。。谢谢你的发帖

看起来问题不在于代码,而在于后端(可能是数据库列设置或其他)


调试

我看你已经修好了

如果类似的错误再次出现,您可以执行以下几项操作:

  • 重新启动服务器(可能是缓存问题或其他问题)。我相信你可以通过heroku restart-一个应用程序名来实现这一点

  • 检查数据库--
    pgsql
    mysql
    类似,但略有不同。如果您正在存储“描述”数据,那么在创建模式时最好使用
    t.text

  • 删除图像上传——如果您使用的是
    carrierwave
    ,请注释掉
    mount\u uploader:picture,PictureUploader
    &
    validate:picture\u size
    行,这将阻止图像被处理,这可能是一个问题


  • 无论哪种方式,Heroku都可能出现一些小问题


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

    您是否检查了您的参数并查看了它们的外观?您是否也发布了您的
    事件
    模型?我已在文章底部添加了事件模型的代码。@Cyzanfar我对此还是比较新的,我在哪里检查参数?我只需要在正确的方向上轻推一下。在保存之前在create方法中放置一个断点。一旦你创建了一个新的事件,你的应用程序就会挂起,你只需在控制台中键入paeans,就可以检查paeans的值。很可能是数据库。当它现在工作时,我真的没有任何东西使它工作。在我学习和研究这些问题的过程中,我有一个反复出现的主题,那就是我使用的数据库,用于dev和prod的不同数据库。