我有一个Rails 4应用程序
<%= javascript_include_tag "modernizr", "data-turbolinks-track" => true %>
Run Code Online (Sandbox Code Playgroud)
在头上.在开发中,将呈现以下HTML,并加载modernizr:
<script data-turbolinks-track="true" src="/assets/modernizr.js?body=1"></script>
Run Code Online (Sandbox Code Playgroud)
在生产中,渲染了followign HTML,并且未加载modernizr (未找到404):
<script data-turbolinks-track="true" src="/javascripts/modernizr.js"></script>
Run Code Online (Sandbox Code Playgroud)
在生产中,/assets/modernizr.js被发现并可浏览.
在Rails文档说,javascript_include_tag应该产生
<script data-turbolinks-track="true" src="/assets/modernizr.js?body=1"></script>
Run Code Online (Sandbox Code Playgroud)
在生产中,我stylesheet_link_tag很好,链接到/assets/目录.
为什么javascript_include_tag链接/javascripts而不是/assets生产,我该如何解决?
我正在尝试从ML 中的现代编译器实现为 Tiger 语言编写一个解析器,但陷入了其中一种递归类型。
我有以下类型
data LValue =
Id Atom
| RecordAccess LValue Atom
| ArraySubscript LValue Expression
Run Code Online (Sandbox Code Playgroud)
具有以下语法:
lvalue -> id
-> lvalue.id
-> lvalue[exp]
id -> atom
exp -> (the big, overarching, everything-is-an-expression type)
Run Code Online (Sandbox Code Playgroud)
我试图用秒差距解析它,但我陷入了无限递归循环。这是我当前的基本解析器:
lvalueParser :: Parsec String () LValue
lvalueParser =
try (Id <$> (atomParser <* (notFollowedBy (char '.'))))
<|> try recordAccessParser
where recordAccessParser = (uncurry RecordAccess) <$> do {
record <- lvalueParser;
char '.';
atom <- atomParser;
return (record, atom)
}
Run Code Online (Sandbox Code Playgroud)
(注意:我还没有尝试实现任何处理该ArrayAccess部分的方法) …
我有一个模型练习,它有以下列:circuit和:order(以及其他).在一个视图中,我试图首先通过:circuit然后通过:order来命令练习.当我使用以下内容时:
@schedule.exercises.order(:circuit).each do |exercise|
Run Code Online (Sandbox Code Playgroud)
它按预期工作.但是,当我尝试添加:order列时:
@schedule.exercises.order(:circuit, :order).each do |exercise|
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
SQLite3::SQLException: near "order": syntax error: SELECT "exercises".* FROM "exercises" WHERE "exercises"."schedule_id" = 1 ORDER BY circuit, order
Run Code Online (Sandbox Code Playgroud)
当我单独传递:order列时,也会发生同样的错误:
@schedule.exercises.order(:order).each do |exercise|
SQLite3::SQLException: near "order": syntax error: SELECT "exercises".* FROM "exercises" WHERE "exercises"."schedule_id" = 1 ORDER BY order
Run Code Online (Sandbox Code Playgroud)
我假设这是因为列名(:order)与SQL方法名(order)相同.我想知道除了改变我的列标题之外还有什么方法吗?
谢谢,斯图尔特