我确定这应该很简单(可能缺少明显的东西),但是......我有一个毫秒的数据库字符串,我希望在Rails中转换为美国格式的日期..to_date想打电话会是我的朋友,但这会引发一个奇怪的错误.
article.date => "1379844601000"
article.date.to_date
NoMethodError: undefined method `div' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议正确的方法吗?
我正在尝试将Ransack(Railscast)结果列表导出为CSV文件(Railcast).但是,它会持续导出所有对象,而不是Ransack搜索返回的结果.谁能告诉我哪里出错了?
在Reports控制器中,我尝试传递@bookings和@ search.result:
def index
@search = current_user.bookings.search(params[:q])
@bookings = @search.result
@search.build_condition
respond_to do |format|
format.html
format.csv { render text: Booking.to_csv(@bookings) }\
end
end
Run Code Online (Sandbox Code Playgroud)
然后是Booking to_csv方法:
def self.to_csv list
CSV.generate do |csv|
csv << column_names
list.each do |booking|
csv << booking.attributes.values_at(*column_names)
end
end
end
Run Code Online (Sandbox Code Playgroud)
然而,每次,我都会得到未经过滤的current_user.bookings列表.为什么?
我想不出更好的方法来重构下面的代码(看到这个问题),虽然我知道它非常难看.但是,它会抛出一个Postgres错误(不是SQLite):
ActiveRecord::StatementInvalid:
PG::Error: ERROR:
column "articles.id" must appear in the GROUP BY clause or be used in an aggregate function
Run Code Online (Sandbox Code Playgroud)
查询本身是:
SELECT "articles".*
FROM "articles"
WHERE "articles"."user_id" = 1
GROUP BY publication
Run Code Online (Sandbox Code Playgroud)
哪个来自以下视图代码:
=@user.articles.group(:publication).map do |p|
=p.publication
=@user.articles.where("publication = ?", p.publication).sum(:twitter_count)
=@user.articles.where("publication = ?", p.publication).sum(:facebook_count)
=@user.articles.where("publication = ?", p.publication).sum(:linkedin_count)
Run Code Online (Sandbox Code Playgroud)
在SQLite中,这给出了输出(例如)NYT 12 18 14 BBC 45 46 47 CNN 75 54 78,这正是我所需要的.
如何改进代码以消除此错误?
我正在尝试使用Cloudflare Worker将 POST 请求代理到另一台服务器。
它抛出了一个 JS 异常——通过包含在一个 try/catch 博客中,我已经确定错误是:
TypeError: A request with a one-time-use body (it was initialized from a stream, not a buffer) encountered a redirect requiring the body to be retransmitted. To avoid this error in the future, construct this request from a buffer-like body initializer.
我原以为这可以通过简单地复制 Response 来解决,以便它不被使用,如下所示:
return new Response(response.body, { headers: response.headers })
这是行不通的。我在这里缺少流式传输与缓冲的什么?
addEventListener('fetch', event => {
var url = new URL(event.request.url);
if (url.pathname.startsWith('/blog') || url.pathname === '/blog') {
if (reqType …Run Code Online (Sandbox Code Playgroud) 我的理解是Rails 4(使用4.2.5)支持在数组上使用.where()运算符.
但是,下面代码的第3行(其中作者属于User且有许多出版物)抛出NoMethodError: undefined method 'where' for #<Array:0x007fd8be73e850>.
@authors = current_user.authors
@pubs = @authors.map(&:publications).flatten.uniq
@scoped = @pubs.where(name: "Publication")
Run Code Online (Sandbox Code Playgroud)
我最初认为它可能.flatten属于部分,但删除它没有任何区别.任何人都能解释一下吗?
activerecord ×1
arrays ×1
datetime ×1
fetch-api ×1
javascript ×1
postgresql ×1
ransack ×1
ruby ×1