小编bal*_*and的帖子

在Rails 3生成器中多次调用任务

我正在编写一个Rails 3生成器,它可以创建两个不同的模型.这是我正在尝试做的一个非常简单的例子:

def my_generator_task
  invoke "model", ["foo"]
  invoke "model", ["bar"]
end
Run Code Online (Sandbox Code Playgroud)

问题是Thor调用方法只调用一次任务,因此第二次调用"模型"任务永远不会发生,并且永远不会创建"bar"模型.有没有人知道一个优雅的方法来实现这一点,最好是以一种不会破坏运行发生器"rails destroy"的能力的方式?

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

10
推荐指数
1
解决办法
849
查看次数

TextMate js.erb:toggle <%=%>,<%%>

我正在使用js.erb模板来呈现一些jQuery.在TextMate中编辑html.erb文件时,我经常使用方便的键组合ctrl +>来创建然后切换以下标记:

<%=  %>
<%  %>
<%-  -%>
<%#  %>
Run Code Online (Sandbox Code Playgroud)

编辑js.erb文件时,此快捷方式默认不起作用.在Bundle Editor中,我在"Ruby"下找到了一个名为"Insert ERb's <%..%>或<%= ..%>"的片段.通过将"source.js"添加到作用域选择器,我可以使插入工作,但是当我多次按下键组合时,而不是切换标记,我在标记内部得到了一个标记,如下所示:

<%= <%=  %> %>
Run Code Online (Sandbox Code Playgroud)

我已经尝试更改名为"切换ERb标签"的命令范围,但我似乎无法开始工作.有什么建议?

2010年11月19日更新:

在本周出版的Textmate新版本中,这不再是一个问题:1.5.10(1623).

textmate ruby-on-rails erb textmatebundles

9
推荐指数
1
解决办法
1300
查看次数

转换Github pull-request来发布

使用hub命令可以轻松地将问题转换为pull-request :

hub pull-request -i 123
Run Code Online (Sandbox Code Playgroud)

但是,你如何走另一条路并将拉动请求转换回问题?

github

6
推荐指数
1
解决办法
889
查看次数

强制ActiveRecord计数不同(使用Kaminari)

我正在使用Kaminari对查询中的一些结果进行分页,其中我正在选择不同的记录.请考虑以下控制器代码:

@things = Thing.joins... # create a complex query that produces duplicate results

# I want to select distinct results: this produces the correct results
@things = @things.select("DISTINCT things.*")

# when Kaminari calls count, it will run "SELECT COUNT(*)", instead of 
# "SELECT COUNT(DISTINCT things.*)" we will get the wrong count and extra pages
@things = @things.page(params[:page]).per(10)
Run Code Online (Sandbox Code Playgroud)

我能想到的最好的解决方案是传递:distinct => truecount像Kaminari的开发人员拒绝的拉动请求.这个SO问题讨论了潜在的问题.这行代码是违规的调用count.

是否有任何变通方法可以为Kaminari提供正确的计数,而不需要修补Kaminari?谢谢.

更新:

  • 使用名为"count"的作用域是一个很好的建议,但在ActiveRecord :: Relation上调用时不起作用.它在我的模型类上调用时有效,但这没有用.

activerecord ruby-on-rails ruby-on-rails-3 kaminari

5
推荐指数
1
解决办法
3563
查看次数

在SASS/Compass输出前添加注释

是否有一种方便的方法让SASS自动将注释添加到每个CSS输出文件的开头?具体来说,当使用Compasss时,我想发出一个简短的警告,告诉设计师不要直接编辑CSS并指出他们开始使用Compass的说明.我使用输出样式:compressed,它删除输入SCSS/SASS文件中的注释.

如果没有方便的方法,那么我将提交一个问题/补丁.我正在考虑添加一个名为的选项:output_prefix,它带有一个String,它将被添加到所有输出CSS文件中.

css ruby configuration sass compass-sass

4
推荐指数
1
解决办法
2532
查看次数