我正在使用datamapper存储到数据库.迁移db后立即没有任何方法,因为没有值
<input type="text" name="seed" value="<%= @seed.value unless @seed.respond_to(value)? %>"
Run Code Online (Sandbox Code Playgroud) 我有一个网站,它将使用url2png.com生成屏幕截图.我不喜欢这样一个事实:它需要每30天重新渲染一次你的截图,并计入你的限制.
理想情况下,我想生成它们,当它完成时,我想将它保存到我自己的服务器,然后在那里查看它.
我想我甚至不确定从哪里开始,特别是......
如何让他们进入某种队列,这种队列将继续工作,直到渲染和返回图像为止(之前我使用过redis/resque/resque_pool,但这非常复杂,我觉得在这个应用程序上采用非常复杂的路径是不舒服的,因为我认为它会被很多人使用.我喜欢更简单的东西,而不是那么容易搞砸了)
如何从rails实际获取图像
如何将图像存储到具有特定文件名的特定目录
如何在我的实际应用程序中引用资产
如何处理模型/控制器视图中的屏幕截图.它应该只是一个额外的属性分配给资源,像Resource.screenshot_url?
他们确实提供了一个Ruby宝石,但我不相信我会使用它,因为它唯一的选择是从他们的服务器获取图像,而不是我将使用他们的URL格式来获取图像,然后以某种方式生成我自己的网址.
http://api.url2png.com/v3/<API_KEY>/<TOKEN>/<BOUNDING-BOX>/<URL>
我想使用以下代码快速从插入模式 - >命令模式.问题是它似乎没有注册我的密钥.我试过控制(没有任何反应),我也试过命令(D),它只是说拼写检查没有激活.
" Quick command mode from insert
imap <C-;> <esc>:
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?是否有一种我不知道的更容易的方式?
由于问题的简单性,我试图避免使用gem。
我的网站具有以下?params =
"type" just filters by type. if this isnt specified they're all lumped together
"sort" sorts by date/whats hot/latest
"view" changes compact view/list view
"scroll" isnt even used yet, its for infinite scroll on or off which i havent put in yet
"reset" is a link when you click the logo (not the home link) that resets all session params to "all" and "whats hot" (the default)
"page" is the pagination which i think is the only really …Run Code Online (Sandbox Code Playgroud) ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2
我正在尝试处理一个有点复杂的查询.我已经阅读了一些关于如何处理这个问题的方法,但它们并没有真正适用于此,因为这不像一个复杂的搜索表单(如在vBulletin搜索帖表单上),而是一组过滤两者的路由按"类别"(未发布,流行,最新)和"时间"(所有时间,上个月,上周,今天)
我意识到下面的代码非常糟糕.我的目标只是让它工作,然后重构.更不用说,它甚至没有真正起作用,因为它没有考虑两种类型和时间,只考虑其中一种,但我想我会在这个线程中处理它.
另外,为了使这个SO代码粘贴更清楚,我.page(params[:page]).per(30)从每一行中排除了它,但是它需要继续所有这些.
那么,有谁知道我会怎么做呢?我已经仔细考虑了一段时间而且有点难过
def index
case params[:category]
when "latest"
@books = Book.all.page(params[:page]).per(30)
when "downloads"
@books = Book.order('downloads DESC')
when "top100"
@books = Book.order('downloads DESC').limit(100)
when "unreleased"
@books = Book.unreleased
else
@books = Book.all.page(params[:page]).per(30)
end
case params[:time]
when "today"
@books = Book.days_old(1)
when "week"
@books = Book.days_old(7)
when "month"
@books = Book.days_old(30)
when "all-time"
@books = Book.all
else
@books = Book.all.page(params[:page]).per(30)
end
end
Run Code Online (Sandbox Code Playgroud)
路线:
# Books
get 'book/:id', to: 'books#show', as: 'book'
resources :books, only: [:index] do
get …Run Code Online (Sandbox Code Playgroud) refactoring ruby-on-rails ruby-on-rails-4 rails-activerecord
我正在创建一个Chrome扩展程序,它将与特定的热门网站进行交互.
它将html注入网站,增加了新功能.这些功能的一部分取决于用户的登录,为了获取登录的用户信息,我们需要使用此网站的OAuth身份验证API对扩展进行身份验证.
例如,让我们说流行的网站(显然我们不拥有)是www.github.com.
当用户在www.github.com上时,我们的扩展会在网站上注入一个"与GitHub连接"的按钮.
单击该按钮时,弹出窗口将打开Githubs OAuth API,并询问用户:'您是否要让应用程序XYZ访问您的GitHub帐户?是/否'.
一旦他们点击是,我们的扩展程序将通过身份验证,现在可以使用GitHub API访问用户名等信息,并将其直接注入github.com网站.
所有这些都是我们希望它工作的方式,但问题是我们在当前窗口(www.github.com)和我们自己的服务器(www.server.com)的弹出窗口之间进行通信时遇到很多困难.
在弹出窗口中发生的Oauth成功回调,返回令牌,我们无法将其传回主页面,因为'协议,域和端口'不匹配.
从弹出式oauth成功窗口中捕获该令牌的最佳方法是什么,以便我们可以在我们的扩展中使用此令牌,该扩展位于另一个域中?
有没有办法可以在each_serializer不使用:json_api适配器的情况下将非模型元数据属性添加到其中?
render json: invoices, each_serializer: Invoices::ItemizedSerializer
Run Code Online (Sandbox Code Playgroud)
我希望它是......
{
data: [{..invoice 1...}, {...invoice 2...}]
metadata: {total: 500}
}
Run Code Online (Sandbox Code Playgroud)
代替
[
{..invoice 1...},
{...invoice 2...}
]
Run Code Online (Sandbox Code Playgroud) 我正在尝试向浏览器发送1mm行的数据.
不幸的是,这是我不能使用分页的情况.
实际的原始PG查询只需3秒.我正在ActiveRecord::Base.connection.exec_query直接进行交互,因此没有轨道开销使轨道实例...只有一个原始数组.
我最初调用.to_json的是结果集,PG但发现调用.to_s速度比100倍快(因为它是一个简单的数组,我不需要任何更高级的东西).
问题是现在该.to_s方法需要10秒,其中SQL查询只需要1-2.
有没有更好的方法可以在快速转换为字符串的响应中发送这么多数据?
我要研究的另一个选项是使用作业将此数据推送到S3,然后将原始数据文件从S3流式传输到浏览器,但它仍然不会改变我将要使用的事实在发送到S3之前将其转换为字符串,我认为这将非常慢.
老实说,我有点困惑,因为它有很多记录,但它仍然只有50mb.我不明白为什么这需要像400mb的内存(我的Heroku dynos标记为"远远超过带宽限制").为什么rails/ruby/dyno在试图传输这么大的响应时对它的内存不了解?它实际上只是崩溃了...
如何使用 Guzzle 6 创建 5 个具有以下条件的异步请求:
base_uri...如果所有 5 个请求都返回 200OK < 500ms,那么我希望能够循环遍历它们的响应...
但是,如果说其中 2 个非 200,其中 1 个超时(超过 500 毫秒),我希望仍然能够访问 2 个成功的响应。
编辑到目前为止,除了超时仍然引发异常之外,一切正常
这是我到目前为止所拥有的:
<?php
require __DIR__.'/../vendor/autoload.php';
use GuzzleHttp\Client;
use GuzzleHttp\Promise;
$client = new Client([
'http_errors' => false,
'connect_timeout' => 1.50, //////////////// 0.50
'timeout' => 2.00, //////////////// 1.00
'headers' => [
'User-Agent' => 'Test/1.0'
]
]);
// initiate each request but do not block
$promises = [
'success' => $client->getAsync('https://httpbin.org/get'), …Run Code Online (Sandbox Code Playgroud) 我正在尝试对图像执行多个操作(调整大小、裁剪、在底部添加一些空白区域)。
然后我试图在那个空白区域添加一个标题。
我想使用mogrify这样我可以编辑现有文件,而不是创建一个新文件(它将是大量的)。
这给了我一个错误,我不太确定如何做到这一点。不过它确实适用convert。
magick mogrify -resize 300x -crop 300x200+0+50 -extent 300x290 input.jpg -size 300x90 -gravity SouthWest -font "Arial" -pointsize 24 -fill black caption:'dis some really long shit that goes on 3 lines onmg how will it ever the' -composite -quality 100
Run Code Online (Sandbox Code Playgroud) ruby ×5
cors ×1
datamapper ×1
guzzle ×1
guzzle6 ×1
image ×1
imagemagick ×1
javascript ×1
macvim ×1
oauth ×1
php ×1
postgresql ×1
refactoring ×1
sinatra ×1
vi ×1
vim ×1