小编Bri*_*ong的帖子

Sublime Text folder_exclude_patterns停止工作

我在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将在搜索结果中排除).但不知何故,它在一两个星期前停止工作,我无法弄清楚原因.

关于如何调试这个的任何想法是在最新的崇高中这个语法是否仍然正确?谢谢!

sublimetext2

18
推荐指数
2
解决办法
7081
查看次数

应该在生产Rails应用程序中将raise_delivery_errors设置为true吗?

Ruby on Rails中的默认设置是将此设置为false(在生产和开发中).

config.action_mailer.raise_delivery_errors = false
Run Code Online (Sandbox Code Playgroud)

似乎很奇怪.我肯定会在开发中实现这一点,这对我很有帮助.但为什么似乎没有人在生产中开启此功能?如果电子邮件没有通过,我们是否应该收到通知?这似乎相当重要.

rails在rails.rb状态中发表评论

错误的电子邮件地址将被忽略

但我有一些验证来检查不正确的电子邮件地址.看起来我仍然想知道(通过例外通知程序或其他方式)用户没有收到电子邮件的频率.

ruby-on-rails actionmailer

15
推荐指数
1
解决办法
6297
查看次数

Rails急切加载计数?

使用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列.但如果有可能的话,在一个包含中做这一切真的很美.

额外的奖励积分,如果有人可以展示如何不仅得到计数,但也提出一些条件,例如只有已经批准的帖子的数量.

ruby-on-rails

15
推荐指数
3
解决办法
4214
查看次数

块语法差异导致"LocalJumpError:no block given(yield)"

看到一个奇怪的案例,试图弄清楚这里发生了什么:

> 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)

ruby block

15
推荐指数
2
解决办法
2万
查看次数

你如何在铁轨上应用补丁到红宝石?

我想应用此线程中提到的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"

ruby patch rubygems ruby-on-rails

14
推荐指数
2
解决办法
7072
查看次数

将MySQL select转换为PostgreSQL

我有这个查询在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子句中或用于聚合函数

如何解决这个问题?

mysql sql postgresql

14
推荐指数
2
解决办法
9410
查看次数

使用postMessage在两个iframe孩子之间进行通信

我有一些用户可以放在他们网站上的嵌入代码.它会在页面上创建两个子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的脚本的好方法是什么?

如果传递非破坏性/变化的消息,只检查数据参数是否足够?

谢谢!

javascript iframe postmessage

14
推荐指数
1
解决办法
7557
查看次数

ImageMagickError无法读取字体`(null)':`(null)'

我在生产服务器上运行了一段时间(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)

它们都存在.我已经尝试更改这些字体的所有者和权限.似乎没有帮助.

有没有人遇到这个并且能够修复它?谢谢!

ruby-on-rails rmagick imagemagick

12
推荐指数
2
解决办法
6962
查看次数

fields_for发送数组而不是Hash(Rails 3)

我正在使用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)

ruby-on-rails ruby-on-rails-3

11
推荐指数
1
解决办法
6676
查看次数

从Heroku上的Resque :: TermException或SIGTERM中彻底恢复

当我们重新启动或部署我们得到的失败队列数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我认为可能会自动重试这两个例外情况?但它似乎不是.

所以我猜两个问题:

  1. 我们可以Resque::TermException在每个工作中手动救援,并使用它来重新安排工作.但对于所有工作,是否有一种干净的方法可以做到这一点?即使是猴子补丁.
  2. 不应该resque-retry自动重试这些?你能想出为什么不会这样的原因吗?

谢谢!

编辑:在不到10秒的时间内完成所有工作,这似乎是不合理的.在运行Resque :: DirtyExit异常时,似乎需要有一种方法来自动重新排队这些作业.

heroku resque resque-retry

11
推荐指数
3
解决办法
4799
查看次数