我正在编写一个Rails 3生成器,它可以创建两个不同的模型.这是我正在尝试做的一个非常简单的例子:
def my_generator_task
invoke "model", ["foo"]
invoke "model", ["bar"]
end
Run Code Online (Sandbox Code Playgroud)
问题是Thor调用方法只调用一次任务,因此第二次调用"模型"任务永远不会发生,并且永远不会创建"bar"模型.有没有人知道一个优雅的方法来实现这一点,最好是以一种不会破坏运行发生器"rails destroy"的能力的方式?
我正在使用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).
使用hub命令可以轻松地将问题转换为pull-request :
hub pull-request -i 123
Run Code Online (Sandbox Code Playgroud)
但是,你如何走另一条路并将拉动请求转换回问题?
我正在使用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 => true给count像Kaminari的开发人员拒绝的拉动请求.这个SO问题讨论了潜在的问题.这行代码是违规的调用count.
是否有任何变通方法可以为Kaminari提供正确的计数,而不需要修补Kaminari?谢谢.
更新:
是否有一种方便的方法让SASS自动将注释添加到每个CSS输出文件的开头?具体来说,当使用Compasss时,我想发出一个简短的警告,告诉设计师不要直接编辑CSS并指出他们开始使用Compass的说明.我使用输出样式:compressed,它删除输入SCSS/SASS文件中的注释.
如果没有方便的方法,那么我将提交一个问题/补丁.我正在考虑添加一个名为的选项:output_prefix,它带有一个String,它将被添加到所有输出CSS文件中.
ruby ×2
activerecord ×1
compass-sass ×1
css ×1
erb ×1
github ×1
kaminari ×1
sass ×1
textmate ×1
thor ×1