我在myapp.sublime-project我项目根目录中的文件中有这个.
{
"folders":
[
{
"path": ".",
"folder_exclude_patterns": ["log", "tmp"],
"file_exclude_patterns": ["*.sublime-workspace"]
}
],
"settings":
{
"tab_size": 2
}
}
Run Code Online (Sandbox Code Playgroud)
以前这是有效的(例如log/development.log将在搜索结果中排除).但不知何故,它在一两个星期前停止工作,我无法弄清楚原因.
关于如何调试这个的任何想法是在最新的崇高中这个语法是否仍然正确?谢谢!
Ruby on Rails中的默认设置是将此设置为false(在生产和开发中).
config.action_mailer.raise_delivery_errors = false
Run Code Online (Sandbox Code Playgroud)
似乎很奇怪.我肯定会在开发中实现这一点,这对我很有帮助.但为什么似乎没有人在生产中开启此功能?如果电子邮件没有通过,我们是否应该收到通知?这似乎相当重要.
rails在rails.rb状态中发表评论
错误的电子邮件地址将被忽略
但我有一些验证来检查不正确的电子邮件地址.看起来我仍然想知道(通过例外通知程序或其他方式)用户没有收到电子邮件的频率.
使用include属性可以很好地加载
Post.find(:all, :include => :author)
Run Code Online (Sandbox Code Playgroud)
我想知道你是否也可以急于加载计数,比如我想获得每个帖子的评论数量,而不加载所有评论本身?
也许是这样的
Post.find(:all, :include => [:author, "count(comments)")
Run Code Online (Sandbox Code Playgroud)
我想我可以使用count_cache列.但如果有可能的话,在一个包含中做这一切真的很美.
额外的奖励积分,如果有人可以展示如何不仅得到计数,但也提出一些条件,例如只有已经批准的帖子的数量.
看到一个奇怪的案例,试图弄清楚这里发生了什么:
> def test
> p yield
> end
=> nil
> test { 1 }
1
=> 1
> p test { 1 }
1
1
=> 1
> p test do
> 1
> end
LocalJumpError: no block given (yield)
Run Code Online (Sandbox Code Playgroud) 我想应用此线程中提到的action_mailer补丁,但我之前从未应用过补丁,我不确定这些是如何工作的:https: //rails.lighthouseapp.com/projects/8994/tickets/2263
我的动作邮件宝石在这里:/opt/ruby-enterprise-1.8.6-20090421/lib/ruby/gems/1.8/gems/actionmailer-2.3.2
我假设我需要去那个目录并运行patch命令......这样的事情?
cd /opt/ruby-enterprise-1.8.6-20090421/lib/ruby/gems/1.8/gems/
wget https://rails.lighthouseapp.com/attachments/108548/0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch
patch < 0001-Fix-implicit-multipart-mailer-views-when-RAILS_ROOT.patch
Run Code Online (Sandbox Code Playgroud)
我还不太清楚的一件事是补丁文件是指"actionmailer"目录,但是我的名字叫做"actionmailer-2.3.2"
我有这个查询在MySQL中正常工作.更多背景信息在这里.
SELECT c.*, SUM(ABS(v.vote)) AS score
FROM categories c,items i, votes v
WHERE c.id = i.category_id
AND i.id = v.voteable_id
AND v.created_at > '#{1.week.ago}'
GROUP BY c.id
ORDER BY score DESC LIMIT 8;
Run Code Online (Sandbox Code Playgroud)
我尝试在PostgreSQL中运行它,它失败了这个错误消息.
PGError:错误:列"c.name"必须出现在GROUP BY子句中或用于聚合函数
我不确定这是什么意思,所以我尝试在group by子句中将"c.id"更改为"c.name"(假设项目的名称是唯一的,两者在MySQL中的工作方式相同).
然而,这只是产生了另一个类似的错
PGError:错误:列"c.id"必须出现在GROUP BY子句中或用于聚合函数
如何解决这个问题?
我有一些用户可以放在他们网站上的嵌入代码.它会在页面上创建两个子iframe.我想让这些孩子能够沟通.
我正在使用javascript的window.postMessage https://developer.mozilla.org/en-US/docs/DOM/window.postMessage
由于两个iframe孩子无法直接通信,我使用父亲作为消息的中继.但是,父级可以位于不同的域中,因为它是可嵌入的代码.
当所有三个(父项和两个孩子)都在同一个域上时,它非常简单,我使用安全检查检查 e.origin我自己的网站
# coffeescript
# host = "http://www.mysite.com"
host = "http://localhost"
receive_message = (e) ->
console.log("received message from " + e.origin + ": " + e.data)
return if e.origin != host
if e.data == "show"
...
else if e.data == "hide"
...
window.addEventListener("message", receive_message, false)
Run Code Online (Sandbox Code Playgroud)
当父级可以在任何域上时,检查原点的优雅方法是什么?
允许调试源可以是localhost的脚本的好方法是什么?
如果传递非破坏性/变化的消息,只检查数据参数是否足够?
谢谢!
我在生产服务器上运行了一段时间(Ubuntu正在运行ImageMagick,Rmagick等).
从谷歌搜索它似乎没有找到正确的字体使用,这需要正确设置
sudo nano /usr/lib/ImageMagick-6.3.7/config/type-ghostscript.xml
Run Code Online (Sandbox Code Playgroud)
当我打开这个文件时,它列出了这个目录中的一堆字体
/usr/share/fonts/type1/gsfonts/
Run Code Online (Sandbox Code Playgroud)
它们都存在.我已经尝试更改这些字体的所有者和权限.似乎没有帮助.
有没有人遇到这个并且能够修复它?谢谢!
我正在使用fields_for我的形式
<%= form_for @user %>
...
<%= f.fields_for :photos do |f2| %>
<%= f2.radio_button :public, 'true' %>
<% end %>
...
<% end %>
Run Code Online (Sandbox Code Playgroud)
以下是它生成的单选按钮:
<input id="user_photos_attributes_0_public_true" name="user[photos_attributes][0][public]" type="radio" value="true" />
<input id="user_photos_attributes_0_id" name="user[photos_attributes][0][id]" type="hidden" value="1" />
<input id="user_photos_attributes_1_public_true" name="user[photos_attributes][1][public]" type="radio" value="true" />
<input id="user_photos_attributes_1_id" name="user[photos_attributes][1][id]" type="hidden" value="4" />
<input id="user_photos_attributes_2_public_true" name="user[photos_attributes][2][public]" type="radio" value="true" />
<input id="user_photos_attributes_2_id" name="user[photos_attributes][2][id]" type="hidden" value="5" />
...
Run Code Online (Sandbox Code Playgroud)
我在user.rb中有这个
has_many :photos
accepts_nested_attributes_for :photos
Run Code Online (Sandbox Code Playgroud)
提交表单时,我收到此错误:
Error during failsafe response: ActionView::Template::Error
TypeError (expected Hash (got Array) …Run Code Online (Sandbox Code Playgroud) 当我们重新启动或部署我们得到的失败队列数Resque工作与任一Resque::TermException (SIGTERM)或Resque::DirtyExit.
我们TERM_CHILD=1 RESQUE_TERM_TIMEOUT=10在Procfile中使用new ,所以我们的工作线看起来像:
worker: TERM_CHILD=1 RESQUE_TERM_TIMEOUT=10 bundle exec rake environment resque:work QUEUE=critical,high,low
Run Code Online (Sandbox Code Playgroud)
我们也在使用resque-retry我认为可能会自动重试这两个例外情况?但它似乎不是.
所以我猜两个问题:
Resque::TermException在每个工作中手动救援,并使用它来重新安排工作.但对于所有工作,是否有一种干净的方法可以做到这一点?即使是猴子补丁.谢谢!
编辑:在不到10秒的时间内完成所有工作,这似乎是不合理的.在运行Resque :: DirtyExit异常时,似乎需要有一种方法来自动重新排队这些作业.
ruby ×2
actionmailer ×1
block ×1
heroku ×1
iframe ×1
imagemagick ×1
javascript ×1
mysql ×1
patch ×1
postgresql ×1
postmessage ×1
resque ×1
resque-retry ×1
rmagick ×1
rubygems ×1
sql ×1
sublimetext2 ×1