由于Heroku是一个只读文件系统,我不能使用paperclip在服务器上存储少量文件.数据库映像存储是一个选项,但不是特别理想,因为这可能会使我的客户端的数据库大小从几百KB增加到超过5 MB的"免费"共享数据库限制(取决于映像的大小).
这使得Amazon S3成为可能的解决方案.我知道Heroku是在EC2上托管的(我相信?).在提到S3-EC2文件传输时,亚马逊的定价措辞有点令人困惑.如果我让我的客户端设置了一个S3帐户并让他们进行文件传输,那么定价会是什么样的?
从S3的角度来看,在rails控制器中上传和下载数据是否更便宜,然后使用send_file将数据提供给浏览器?或者直接链接到浏览器中的图像或pdf更正常吗?
因为heroku在亚马逊上托管,我的客户是否必须支付任何费用?我正在寻找与此相关的其他问题,但没有任何关于文件传输的哪些部分将被收取的真正直接答案.
我想存储会花费一点(几乎没有),但带宽怎么样?谢谢 :)
我有一张名为'jobs'的桌子.对于特定用户,作业可以是活动的,存档的,过期的,挂起的或关闭的.现在每个页面请求都生成5个COUNT个查询,并且在尝试优化时我试图将其减少为单个查询.这是我到目前为止所拥有的,但它几乎比5个单独的查询快.请注意,我已经简化了每个子查询的条件,使其更容易理解,但完整查询的行为却相同.
有没有办法在不使用低效子查询的情况下在同一查询中获取这5个计数?
SELECT
(SELECT count(*)
FROM "jobs"
WHERE
jobs.creator_id = 5 AND
jobs.status_id NOT IN (8,3,11) /* 8,3,11 being 'inactive' related statuses */
) AS active_count,
(SELECT count(*)
FROM "jobs"
WHERE
jobs.creator_id = 5 AND
jobs.due_date < '2011-06-14' AND
jobs.status_id NOT IN(8,11,5,3) /* Grabs the overdue active jobs
('5' means completed successfully) */
) AS overdue_count,
(SELECT count(*)
FROM "jobs"
WHERE
jobs.creator_id = 5 AND
jobs.due_date BETWEEN '2011-06-14' AND '2011-06-15 06:00:00.000000'
) AS due_today_count
Run Code Online (Sandbox Code Playgroud)
这继续2个子查询,但我想你明白了.
是否有更简单的方法来收集这些数据,因为它基本上是5个不同的COUNT,来自作业表的相同数据子集?
数据子集是'creator_id = 5',之后每个计数基本上只有1-2个附加条件.请注意,目前我们正在使用Postgres,但可能会在不久的将来转向MySQL.因此,如果您能提供与ANSI兼容的解决方案,我将非常感激:)
我有这个查询(在postgresql中):
SELECT "table_1".* FROM "table_1"
INNER JOIN "join_table"
ON "table_1"."id" = "join_table"."table_1_id"
WHERE "join_table"."table_2_id" = 650727
ORDER BY table_1.created_at DESC
LIMIT 1
Run Code Online (Sandbox Code Playgroud)
返回1个结果,但执行时间约为250-300毫秒
还有btree索引table_1.created_at,以及join_table.table_1_id和join_table.table_2_id
当我只LIMIT 1从查询中删除时,执行时间下降到~13ms.此特定查询当前仅返回一个结果(没有LIMIT),但是在WHERE中还有其他值可能返回更多(这就是LIMIT是必要的原因).
为什么在一个只返回单个结果的查询中添加一个LIMIT,这会导致执行时间过多?
这是解释计划LIMIT 1(这些对我来说很难完全理解......):http://explain.depesz.com/s/rOy
这是没有LIMIT 1的解释计划:http://explain.depesz.com/s/q3d7
此外,如果我保留LIMIT 1,但将顺序更改为ASC,则查询也会降至13毫秒.如果我更改LIMIT为LIMIT 20(但保持ORDER BY DESC)它只需要22毫秒... wtf!?
所以它与组合有关ORDER BY DESC,并且LIMIT 1(确切地说是1)
布尔属性,在html 5草案规范中定义:
http://dev.w3.org/html5/spec/Overview.html#boolean-attributes
元素上存在布尔属性表示真值,缺少属性表示false值.
如果该属性存在,则其值必须是空字符串,或者是属性的规范名称的ASCII不区分大小写匹配的值,没有前导或尾随空格.
我的页面使用的是html5 DTD.我试图在我自己的帮助器中使用content_tag视图助手,但是遇到了将布尔属性传递给它的问题.
具体来说这是我的帮手:
def itemscope(type, options = {}, &block)
content_tag(
:div, {
:itemscope => true,
:itemtype => data_definition_url(type)
}.merge(options),
true,
&block
)
end
def data_definition_url(type)
"http://data-vocabulary.org/#{type}"
end
Run Code Online (Sandbox Code Playgroud)
在我看来,假设我称之为(我正在使用haml):
= itemscope("Organization") do
%h1 Here's some content
Run Code Online (Sandbox Code Playgroud)
这是我希望它呈现的内容:
<div itemscope itemtype='http://data-vocabulary.org/Organization'>
<h1>Here's some content</h1>
</div>
Run Code Online (Sandbox Code Playgroud)
但这就是我实际得到的:
<div itemscope='true' itemtype='http://data-vocabulary.org/Organization'>
<h1>Here's some content</h1>
</div>
Run Code Online (Sandbox Code Playgroud)
根据w3规范,这是无效标记.布尔属性的合法值是属性本身的名称,或者根本没有值.
这很烦人,因为我可以更改:itemscope => trueto :checked => true,它将正确地呈现checked='checked'div元素的属性列表中的属性.
我宁愿它呈现的只是最小化版本itemscope...但我不知道怎么做是使用content_tag选项.我可以很容易地发送:itemscope =>'itemscope',但很难说谷歌是否会正确解释它,因为他们的所有示例和规范都显示了最小化的版本.请参阅此处:http: //www.google.com/support/webmasters/bin/answer.py?answer = 146861,了解这些属性是什么以及我使用它们的原因(微数据格式) …
我已经阅读了有关此主题的其他问题,但我似乎无法让它发挥作用。我正在尝试下载cforms作为要安装到wp-content/plugins/cforms. 我已经将它用于提供的其他软件包,wpackagist甚至是内部开发的一些自定义插件。
这是我所拥有的:
{
"name": "mycompany/wordpress-install",
"description": "Themes and plugins for our wordpress install.",
"authors": [
{
"name": "Me",
"email": "example@example.net"
}
],
"require": {
"deliciousdays/cforms": "14.5.2"
},
"repositories": [
{
"type": "package",
"package": {
"name": "deliciousdays/cforms",
"version": "14.5.2",
"dist": {
"url": "http://www.deliciousdays.com/download/cforms-v14.5.zip",
"type": "zip"
}
}
}
],
"extra": {
"installer-paths": {
"wp-content/plugins/cforms": ["deliciousdays/cforms"]
}
}
}
Run Code Online (Sandbox Code Playgroud)
它下载 cforms 很好,但是vendor/deliciousdays/cforms当我想要它时它仍然把它放入(显然) wp-content/plugins/cforms。我究竟做错了什么?
我正在测试的应用程序最初隐藏了一些元素.当鼠标悬停在单独的元素上时,它们将通过CSS显示:
.thread_options{
display: none;
}
.btn_thread_options:hover .thread_options{
display: inline;
}
Run Code Online (Sandbox Code Playgroud)
当您将鼠标悬停在.btn_thread_options元素上时,会显示一些我希望Capybara单击的链接.尝试单击这些而不做任何使用click_link "Send Response"会给我错误:
Failure/Error: click_link("Send Response")
Selenium::WebDriver::Error::ElementNotVisibleError:
Element is not currently visible and so may not be interacted with
Run Code Online (Sandbox Code Playgroud)
尝试使用其他方式点击它
page.execute_script("$('.btn_thread_options').trigger('mouseover')")
Run Code Online (Sandbox Code Playgroud)
也不起作用(相同的结果).
也不是先点击该项目以试图强制它被鼠标悬停:
page.find(".btn_thread_options").click
Run Code Online (Sandbox Code Playgroud)
有没有办法让这个正常工作?
sql ×2
amazon-s3 ×1
capybara ×1
composer-php ×1
cucumber ×1
heroku ×1
html-helper ×1
paperclip ×1
php ×1
postgresql ×1
rspec ×1
selenium ×1
subquery ×1
view ×1
view-helpers ×1
wordpress ×1