Gem 其他地方获取数据,然后写入数据库,已经开发 api,如何后端批量 insert??

stephen · 2012年03月26日 · 最后由 stephen 回复于 2012年03月27日 · 2870 次阅读

其他地方获取数据,然后写入数据库,已经开发 api,如何后端批量 insert?? API 用 grape 写的

resource :article do
  post do
    authenticate!
    @article = Article.new(params[:title], params[:body])
    @article.save!
  end
end


如果是写例如 io 或者其他客户端,只要做个 form,action 指向这个 api 路径就可以了, 但是是批量导入呢? 应该如何写?

完全不知道在说什么。。

@bony 不好意思,表达可能不是很清楚,现在修改了,加上代码

以下为未经验证代码,不知道好不好使

resource :article do
  articles = []
  post do
    authenticate!
    articles << {:title => params[:title], :body => params[:body]}
  end
  Article.create(articles)
end

#3 楼 @ywjno 这样不算 batches insert,执行这个后看 sql 还是一条一条 insert 的。 楼主这个需求可以自己构造 sql 语句,Model.connection.execute(sql),也可以使用 rails 提供的方法 http://apidock.com/rails/ActiveRecord/ConnectionAdapters/DatabaseStatements/insert_fixture

所以我才说是未经验证代码,再说有些数据库不支持 insert 语句里面的 values 后面放数组

@vkill rails 提供的方法,在 3.1.1 后被移除了!

@ywjno 如果按照你种方法,客户端代码应该怎么写?

匿名 #9 2012年03月26日

客户端或者 Form 就用数组来提交你多个对象好了

#7 楼 @stephen 我一般是从 csv 之类的得到数据然后批量操作,不涉及到页面

@ywjno 恩恩,我也和你一样,也不涉及的页面,可以把你的代码例子给我参考吗?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号