使用adelevie / parse-ruby-client保存日期会出现错误Parse :: ParseProtocolError 111:密钥*的无效类型,预期日期,但是得到了字符串

时间:2015-09-29 13:35:18

标签: ruby-on-rails ruby parse-platform

我使用Parse API密钥和客户端ID初始化了我的parse-ruby-client。

以下是保存日期的代码:

dbObject = MyParse.object("ClassName")
dbObject["startTime"] = Date.new
result = dbObject.save

但是我在第二行收到以下错误:

Parse::ParseProtocolError in EventsController#create<br> 111: invalid type for key startTime, expected date, but got string

2 个答案:

答案 0 :(得分:0)

错误提示您:对于dbObject["startTime"],键(&#34; startTime&#34;)应该是日期类型,但是&#34; startTime&#34;是一种字符串类型。

您应该根据需要将dbObject["startTime"]更改为dbObject[Date.new](或其他数据类型值)。

答案 1 :(得分:0)

我能够通过编写和调用云代码函数将事件的开始时间保存到Parse,而不是直接从.rb文件保存值。

events_controller.rb:

params = {"name" => @event.name,
          "startTime" => @event.startTime}
function = Parse::Cloud::Function.new("createEvent") 
function.call(params)

cloud_code.js:

Parse.Cloud.define("createEvent", function(req, res) {

  var name = req.params.name;
  var startTime = new Date(req.params.startTime);

  var parseClass = Parse.Object.extend("ClassName");
  var event = new parseClass();

  event.set('name', name);
  event.set('startTime', startTime);

  event.save(null, {
    success: function(event) { 
      res.success('Successfully ran createEvent');
    },
    error: function(event, error) {
      res.error(error);
    }

  });
});