小编Rya*_*igg的帖子

用于Rails进程的互斥锁

通过Passenger或Mongrel部署Rails时,您运行了多个应用程序实例.在共享资源上建立互斥锁的最佳实践或模式是什么,例如写入本地文件或远程文件.我想确保两个进程不会同时写入同一个资源.

mutex ruby-on-rails

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

Rails - 使用h()转义HTML并排除特定标记

我想知道,到目前为止,无法在网上找到任何答案,如何完成以下操作.

假设我有一个包含以下内容的字符串:

my_string =" 你好,我是一个字符串." (在预览窗口中,我看到这实际上是在BOLD和ITALIC格式化而不是显示"强"和"i"标签)

现在,我想使用html_escape()(或h())方法/函数使其安全.所以我想阻止用户插入任何javascript和/或样式表,但是,我仍然希望以粗体显示单词"Hello",并以斜体显示单词"string".

据我所知,除了文本本身之外,h()方法不会采用任何其他参数.

有没有办法逃避某些html标签,而不是全部?喜欢白色或黑色列表标签?

这可能是什么样子的示例,我想说的是:

h(my_string,:except => [:strong,:i])#=>所以基本上,逃避一切,但只留下"强"和"我"标签,不要逃避这些.

有什么方法或方法可以实现这个目标吗?

提前致谢!

html security escaping ruby-on-rails

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

如何在轨道上将ruby上的内容国际化?

我如何国际化将类别表(带有名称列)说成不同的语言.产品表(由名称和描述列组成)如何.哪个是使用Ruby on Rails使这些数据库表的内容国际化的最佳方法?

ruby-on-rails internationalization

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

基于数据库的动态Rails路由

我正在使用Rails 2.3构建一个包含各种模块(博客,日历等)的CMS.每个模块由不同的控制器处理,工作正常.

我唯一的问题是根URL.根据用户选择的配置,此默认URL应显示不同的模块,即不同的控制器,但我必须确定正确的控制器的唯一方法是检查数据库是否显示"默认"模块.

目前我正在使用一个特定的"根"控制器来检查数据库并重定向到正确的控制器.但是我更喜欢不改变URL,这意味着我想从同一个请求中调用正确的控制器.

我已经尝试使用Rails Metal获取此信息并手动调用我想要的控制器,但我想我可能正在重新发明轮子(确定选择控制器的请求路径,管理会话等).

任何的想法?非常感谢提前!

ruby-on-rails

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

PHP资产包装库

任何人都知道一个伟大的PHP资产管理/打包库使资产(图像,css,js)部署和优化非常容易,就像Jammit for Rails一样.

php

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

youtube使用什么框架?

有人知道youtube是否使用Django,Rails或其他一些框架?

我用Google搜索,但似乎无法找到任何直接的答案.

youtube django frameworks ruby-on-rails backend

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

纯ERB/Erubis中的块

我有以下Ruby脚本:

require 'erubis'

def listing(title, attributes={})
  "output" + yield + "more output"
end

example = %Q{<% listing "db/migrate/[date]_create_purchases.rb", :id => "ch01_292" do %>
<![CDATA[class CreatePurchases < ActiveRecord::Migration
  def change
    create_table :purchases do |t|
      t.string :name
      t.float :cost
      t.timestamps
    end
  end
end]]>
<% end %>}

chapter = Erubis::Eruby.new(example)
p chapter.result(binding)
Run Code Online (Sandbox Code Playgroud)

我试图在这里使用一个块并让它输出"输出",然后输出块中的内容然后"更多输出",但我似乎无法让它工作.

我知道ERB曾经在Rails 2.3中以这种方式工作,现在可以<%=在Rails 3中使用......但我根本不使用Rails.这只是纯ERB.

如何让它输出所有内容?

ruby erb

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

Capybara +远程表格请求

我有一个表格,我正在使用Capybara进行测试.这个表单的URL转到我的Braintree沙箱,虽然我怀疑任何远程URL都会出现问题.当Capybara单击表单的提交按钮时,请求将路由到虚拟应用程序而不是远程服务.

这是一个重现此问题的示例应用程序:https://github.com/radar/capybara_remote.运行bundle exec ruby​​ test/form_test.rb并且测试将通过,这不是我通常所期望的.

为什么会发生这种情况,这种行为是我可以依赖的总是发生的?

ruby-on-rails

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

解析LIFX标头会返回错误的协议编号

我试图根据他们的文档解析LIFX标头.

这是我的代码:

data = <<36, 0, 0, 52, 33, 235, 176, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0>>
<< size :: little-integer-size(16),
   origin :: little-integer-size(2),
   tagged :: size(1),
   addressable :: size(1),
   protocol :: little-integer-size(12),
   rest :: bitstring >> = data
IO.puts protocol
Run Code Online (Sandbox Code Playgroud)

这告诉我的protocol1027,但是LIFX的文档说它应该是1024.我已经通过使用LIFX的RubyGem确认该字段的值是1024.

为什么在Elixir中我看到这个值为1027而不是1024?

elixir

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

在Clap中的参数中采用多个值

我正在使用Clap,并且正在尝试使它成为一个子命令可以为参数使用多个值。我需要的界面是:

just use repo [files]
Run Code Online (Sandbox Code Playgroud)

一个例子:

just use radar/dot-files gitaliases ryan-aliases
Run Code Online (Sandbox Code Playgroud)

repo这里的参数将是字符串“ radar / dot-files”,files参数将是的向量["gitaliases", "ryan-aliases"]

这是我要使用的代码:

let matches = App::new("just")
    .version("v1.0-beta")
    .subcommand(
        SubCommand::with_name("use")
            .arg(Arg::with_name("repo").required(true))
            .arg(
                Arg::with_name("files")
                    .required(true)
                    .multiple(true)
                    .number_of_values(1),
            ),
    )
    .get_matches();

if let Some(matches) = matches.subcommand_matches("use") {
    println!("{:?}", matches.value_of("files").unwrap())
}
Run Code Online (Sandbox Code Playgroud)

这只会输出我指定的第一个文件,而不是所有文件。

对于任意数量的参数,如何使它输出所有不同的文件?

rust clap

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