小编Ale*_*exC的帖子

Ruby on Rails:在哪里定义全局常量?

我刚刚开始使用我的第一个Ruby on Rails webapp.我有一堆不同的模型,视图,控制器等等.

我想找到一个好地方来坚持真正全局常量的定义,这适用于我的整个应用程序.特别是,它们既适用于模型的逻辑,也适用于我的观点中的决策.我找不到任何干燥的地方将这些定义放在我们所有模型和我的所有视图中都可用的地方.

举一个具体的例子,我想要一个常数COLOURS = ['white', 'blue', 'black', 'red', 'green'].在模型和视图中都可以使用它.我在哪里可以在一个地方定义它以便它可以访问?

我尝试过的:

  • model.rb文件中与它们关联最多的常量类变量,例如@@COLOURS = [...].但我无法找到一种明智的方式来定义它,以便我可以写出我的观点,Card.COLOURS而不是像kludgy那样的东西Card.first.COLOURS.
  • 关于模型的方法,类似于def colours ['white',...] end- 同样的问题.
  • application_helper.rb中的一个方法 - 这是我到目前为止所做的,但帮助程序只能在视图中访问,而不能在模型中访问
  • 我想我可能在application.rb或environment.rb中尝试了一些东西,但那些看起来并不正确(而且它们似乎也没有用)

是否无法定义任何可从模型和视图访问的内容?我的意思是,我知道模型和视图应该是分开的,但在某些领域肯定会有时候他们需要引用相同的领域特定知识?

global ruby-on-rails constants

203
推荐指数
8
解决办法
12万
查看次数

如何使Chrome页面的打印尺寸与Chrome一致?

我正在设计一组要打印的HTML页面,我希望页面的元素最终达到相同的比例.例如,有一类div,其宽度定义为200px宽,出现在几个页面的每一页上.我希望它在每页打印时看起来都是相同的尺寸(适用于例如切割和叠加).

我正在使用一些在Chrome中效果最好的东西(主要是CSS缩放规则,以便在其他地方使用较小的元素副本),所以理想情况下我想继续使用Chrome.(这在Firefox中会更容易,因为它在打印对话框中具有明确的缩放比例.)但是在Chrome上,从不同页面打印时保持相同元素的大小一致并非易事.

Chrome的PDF生成(这是从Chrome进行打印的内容)似乎选择一些部分来定义页面的宽度,并根据该部分缩放页面的其余部分.或者它可能尝试将页面大小设置为适合一页上的"最佳"元素数.如果每个页面的外部框架元素在所有情况下都不是相同的尺寸,那么屏幕尺寸为200px的元素可能会出现从3-4厘米到1.5-2厘米或更小的任何东西.

只是使用@page size没有帮助:我有这个CSS,它没有任何区别:

@media print {
  @ page size: 297mm 210mm 
}
Run Code Online (Sandbox Code Playgroud)

有没有人对如何以一致的尺寸打印出来的东西有任何想法?

我可以应用的一个极端的解决方法是将它们作为一个大HTML页面的所有部分,并使用Javascript将某些部分标记为要打印的唯一部分...我甚至不确定它是否有效,并且它' d在几个不同的页面上比较干净.还有其他想法吗?

html css printing google-chrome print-css

27
推荐指数
3
解决办法
7万
查看次数

CSS:使一个中心div的高度扩展以填充FIXED-HEIGHT容器中的剩余部分

对不起伙计们,这是另一个CSS高度"100%"(sortof)问题......

我有这样的布局:

 ---------------.   
|Containing div |   Containing div's height is FIXED
| .-----------. |     (say 400px for simplicity)
| |Inner div1 | |   Inner div1 has height fixed (say 50px)
| '-----------' |   Inner div3 has static-but-unknown content, 
| .-----------. |     height not known at render time
| |Inner      | |   Inner Variable Div should expand to the rest
| |Variable   | |     of the space - i.e. I want to eliminate
| |Div        | |     the "blank space"
| …
Run Code Online (Sandbox Code Playgroud)

html css height

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

如何通过Hadoop shell脚本指定Hadoop XML配置变量?

我正在编写代码来创建一个临时的Hadoop集群.与大多数Hadoop集群不同,我需要将日志,HDFS文件等位置放在每次启动集群时不同的特定临时网络位置.该网络目录将在运行时生成 ; 我在检查shell脚本hadoop-env.sh和XML文件时都不知道目录名称core-default.xml.

  • 签到时:我可以修改shell脚本hadoop-env.sh和XML文件之类的core-default.xml.
  • 运行时:我生成了我想用于数据存储的临时目录.

我可以指示大部分的Hadoop通过指定环境变量喜欢用这个临时目录HADOOP_LOG_DIRHADOOP_PID_DIR,如有必要,我可以修改shell脚本来读取这些环境变量.

然而,HDFS决定了它的本地目录通过在XML文件中,没有环境变量或shell脚本中定义的两个属性来存储文件系统:hadoop.tmp.dir核心default.xml中dfs.datanode.data.dirHDFS-default.xml中.

有没有办法编辑这些XML文件来确定hadoop.tmp.dir运行时的值?或者,有没有办法使用环境变量来覆盖XML配置的值hadoop.tmp.dir

hadoop environment-variables hdfs

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

Rails:恢复使用form_tag的非模型表单的内容

我的第一个Rails应用程序(使用Rails 3)取得了很好的进展.MVC交互一切都很好,但是我对一个与模型没有直接关系的表单有困难.

我正在使用form_tag,并且在成功的情况下,一切都表现良好.但是,处理错误有点不友好.实际的错误消息存储在flash中并通过layouts/application.html正常显示,但是我真的很喜欢它,如果表单可以记住用户刚刚填写的内容.但它不会:所有字段重置为默认值.

我喜欢对对象的RESTful操作表单的方式自动记住他们提交的值,如果有错误则以红色突出显示.我很好没有红色突出显示,但如果我能让表单的字段保持提交的值,我真的很喜欢它.

任何人都可以建议如何做到这一点?

摘录相关文件:

意见/ cardsets/import.html.erb:

<%= form_tag :action => :import_data, :id => @cardset do %>
  ...
  <%= text_field_tag "separator", "", :maxlength => 1 %>
  ...
  <%= text_field_tag "formatting_line" %>
  ...etc (more fields)
Run Code Online (Sandbox Code Playgroud)

控制器/ cardsets_controller.rb:

# POST /cardsets/1/import_data
def import_data
  success, message = @cardset.import_data(params, current_user)
  if success
    redirect_to(@cardset, :notice => message)
  else
    flash.now[:error] = message
    render :import
  end
end
Run Code Online (Sandbox Code Playgroud)

forms error-handling ruby-on-rails restore

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