我有一个before_filter在我的ApplicationController; 也就是说,对于我项目中的每个控制器.
我如何skip_before_filter为Devise的SessionsController创作行动?
我正在使用一个使用引擎的Rails应用程序.我正在使用初始化程序来配置我的引擎的一个控制器,以便它在主机应用程序中触发一个动作.代码看起来像这样:
# config/initializers/my_engine.rb
MyEngine::SomeController.after_filter proc {
# Do something in the host app
}, :only => :update
Run Code Online (Sandbox Code Playgroud)
这在生产中工作正常,但在开发模式下,proc仅在第一个请求时调用.这是因为类被重新加载并且此配置丢失,因为它存储在类变量中.(例如,MyEngine::SomeController从它所在的文件重新加载,并且由于after_filter未在那里声明,因此不会重新加载它.)
在开发模式下,Rails使用以下加载策略:
app如果您正在主动更改目录,则会在每个请求上重新加载目录中的代码.lib目录中的代码以及config/initializer文件将加载一次.初始化程序文件通常用于配置gem.在过去,gems主要在lib目录中有代码,因此运行一次配置就足够了.
但是,Rails引擎在app目录中有代码:控制器,模型等.这些文件在每个请求的开发模式下重新加载.因此,上面的示例配置丢失了.
Rails config.to_prepare专门解决了这个问题:它在生产中运行一次,在开发中的每个请求上运行一次.
例如,我们在application.rb中有这个,它工作正常:
config.to_prepare do
# set up class variables (after_filters, etc)
end
Run Code Online (Sandbox Code Playgroud)
但是,如果我必须将所有引擎的配置都放入其中application.rb,这就会破坏config/initializers保持组织有序性的观点.
因此,对于我的引擎app目录中的任何类配置,我想将该代码放在文件下config/initializers.
这是我的问题.
config进入初始化文件中的范围.我在想它会Rails.application.config.是对的吗?to_prepare块吗?我担心多次调用它会覆盖以前的块.正如@Frederick Cheung所提到的,Rails.application.config.to_prepare它可以在config/initializer …
我想读取一个文件并找回Strings 的向量.以下功能有效,但有更简洁或惯用的方式吗?
use std::fs::File;
use std::io::Read;
fn lines_from_file(filename: &str) -> Vec<String> {
let mut file = match File::open(filename) {
Ok(file) => file,
Err(_) => panic!("no such file"),
};
let mut file_contents = String::new();
file.read_to_string(&mut file_contents)
.ok()
.expect("failed to read!");
let lines: Vec<String> = file_contents.split("\n")
.map(|s: &str| s.to_string())
.collect();
lines
}
Run Code Online (Sandbox Code Playgroud)
有些事情对我来说似乎不是最理想的:
String,将被丢弃.如果我只想要前N行,这将特别浪费.&str将被丢弃的每行,而不是以某种方式直接从文件到String每行.如何改进?
我正在通过Head First Rails工作,我一直在看=>.它在路线中:
map.connect '/marmots/new', controller=>'marmots', :action=>'new'
这是在渲染部分:
render :partial=>"new_marmot"
它是链接的选项:
<%= link_to 'Destroy', marmot, :confirm=>'Are you sure?', :method=>:delete %>
基本上,=>似乎意味着"平等",但如果是这样,为什么不使用等号呢?它更像是"发送给谁?"
你怎么发音=>你明白这是什么意思?我可以在不知情的情况下过去,但它让我烦恼.
如果我想在Ruby或Javascript中尝试新的东西,我喜欢从irbFirebug中的JS控制台获得即时反馈.
PHP有什么类似的吗?
正如@bernie指出的那样,这些工具被称为REPL - "Read-eval-print loop"
我有一个SVG文件,我想在网页中使用.我希望图像多次出现,但要为每个图像应用不同的CSS样式.
这可能吗?
当我说"应用不同的CSS样式"时,我的意思是我想要设置SVG内容的样式(笔触,颜色,半径等),而不仅仅是一个<img>或者某个东西的宽度.
另外,我不认为"复制并粘贴SVG内容"是"重新使用"它.我想创建一个类似的文件logo.svg,并从HTML中引用它.
我有一个<div>我想成为一条线的人.根据W3Schools,这个规则:
div.foo {
clear: both;
}
Run Code Online (Sandbox Code Playgroud)
......应该是这样的:
"左侧或右侧都不允许浮动元素."
但是,如果我<div>向左浮动两个元素,并将上面的规则应用于第一个元素,则第二个元素不会移动.
另一方面,如果我申请"clear: left"第二个<div>,它会向下移动到下一行.这是我的正常方法,但我不明白为什么我必须这样做.
上面的W3Schools描述是不是很清楚,还是我错过了什么?清算规则是否只能移动应用它的元素?
感谢Michael S和John D的好解释.沃伦指出了CSS2规范,这就是我找到这个答案的地方(强调我的):
此属性指示元素框的哪些边可能不与较早的浮动框相邻 .
所以:clear只影响应用它的元素的位置,相对于代码前面出现的元素.
令人失望的是,我不能告诉我<div>让其他div移动,但他们是休息.:)
我将其作为社区维基,原因有三:
因此,如果有人想要更改/澄清这个问题并使其成为权威指南,请成为我的客人.
我正在使用jQuery的手风琴UI元素处理页面.我在那个例子上建模我的HTML,除了在<li>元素内部,我有一些无序的链接列表.像这样:
$(document).ready(function() {
$(".ui-accordion-container").accordion(
{active: "a.default", alwaysOpen: true, autoHeight: false}
);
});
<ul class="ui-accordion-container">
<li> <!-- Start accordion section -->
<a href='#' class="accordion-label">A Group of Links</a>
<ul class="linklist">
<li><a href="http://example.com">Example Link</a></li>
<li><a href="http://example.com">Example Link</a></li>
</ul>
<!--and of course there's another group -->
Run Code Online (Sandbox Code Playgroud)
虽然IE7动画文档的示例手风琴菜单很好,但它有我的问题.具体来说,页面上的一个手风琴菜单急剧移动并且内容闪烁. 我知道这不是一个CSS问题,因为如果我不包含我的CSS文件会发生同样的事情.
页面上的另一个手风琴菜单会打开您单击的第一个部分,之后将不会打开它们中的任何一个.
这两个问题都是特定于IE的,如果我使用该选项,它们都会消失animated: false.但是我想保留默认slide动画,因为它可以帮助用户理解菜单正在做什么.
还有另外一种方法吗?
在HTML页面上,链接如下:
<a href="#pagelocation">Location on Page</a>
Run Code Online (Sandbox Code Playgroud)
...应该导航到页面上的这个位置:
<a name="pagelocation">
Run Code Online (Sandbox Code Playgroud)
但根据我的经验,它有时会遗漏 - 尤其是从其他页面链接时(如<a href="somepage.html#pagelocation">).通过"未命中",我的意思是它滚动到页面上的错误位置 - 也许是关闭,也许不是.
通常,目标位置最终位于屏幕顶部.我知道如果锚点下面没有足够的空间将其滚动到屏幕顶部,这可能会失败.
为什么它会失败?它完全取决于布局吗?我该如何解决?
(我保持这种一般性,因为我想要一个全能的参考答案.)
感谢关于非显式图像大小的指针.但是在所有元素都有明确大小的页面上呢?(我现在正在处理一个.)
好像所有东西都需要用clojure中的括号括起来.即使是一个简单的问候世界!
(println "Hello world!")
Run Code Online (Sandbox Code Playgroud)
该语法决定有什么好处?