小编Bac*_*cko的帖子

正则表达式验证只包含字符(不是特殊字符),空格和数字的字符串

我正在使用Ruby on Rails 3.0.9,我想验证一个只能包含字符(不是特殊字符 - 不区分大小写),空格和数字的字符串.

在我的验证码中,我有:

validates :name,
  :presence   => true,
  :format     => { :with => regex } # Here I should set the 'regex'
Run Code Online (Sandbox Code Playgroud)

我该如何陈述正则表达式?

ruby regex validation ruby-on-rails ruby-on-rails-3

7
推荐指数
1
解决办法
2万
查看次数

在使用Ruby on Rails ActiveSupport :: Concern功能时如何"嵌​​套"模块的包含?

我正在使用Ruby 1.9.2和Ruby on Rails v3.2.2 gem.我希望"嵌套"包含模块,因为我使用的是RoR ActiveSupport :: Concern功能,但我怀疑我应该在哪里说明该include方法.也就是说,我有以下内容:

module MyModuleA
  extend ActiveSupport::Concern

  # include MyModuleB

  included do
    # include MyModuleB
  end
end
Run Code Online (Sandbox Code Playgroud)

应该include MyModuleB在"身体"/"上下文"/"范围"中说明,MyModuleA或者我应该在included do ... end块中说明?有什么区别,我应该从中得到什么?

ruby nested module ruby-on-rails include

7
推荐指数
1
解决办法
3415
查看次数

动态生成一个`link_to`到控制器动作`edit`

我on Rails的3.0.7使用Ruby,我想生成一个link_to控制器动作edit,动态.我必须在部分模板中使用它,但问题是我为不同的模型数据渲染相同的部分模板(也就是说,我传递不同类实例的局部变量).

所以我不能使用路线"神奇的RoR方式"

`edit_<singular_name_of_the_resource>_path(<resource_class_instance>)`.
Run Code Online (Sandbox Code Playgroud)

我想做类似以下的事情:

link_to( @resource_class_instance, :action => 'edit') # This example is wrong, but it suggests the idea
Run Code Online (Sandbox Code Playgroud)

可能吗?如果是这样,我该怎么做?

ruby ruby-on-rails dynamic link-to ruby-on-rails-3

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

使用Ruby on Rails处理Paperclip文件夹和文件权限

我在运行Ubuntu 10.04 LTS的远程VPS机器上以生产模式运行Ruby on Rails 3.0.9(在开发模式下我在MAC OS Snow Leopard上使用RoR),我想知道如何管理以下场景.

我使用Apache2Phusion Passenger,我已经将Virtual Host设置为:

<VirtualHost *:80>
  ServerName project_name.com
  DocumentRoot /srv/www/project_name.com/public

  <Directory /srv/www/project_name.com/public>
    AllowOverride all
    Options -MultiViews
  </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

更多,我使用Paperclip gem,并且,作为很多人在网络上使用它在生产模式下,我在处理(图像)文件时收到以下错误:

Errno::EACCES (Permission denied - /srv/www/project_name.com/public/images/001):
...
Run Code Online (Sandbox Code Playgroud)

我听说为了避免这些错误的解决方案是设置正确的文件夹权限(手动! - 我不知道是否可以自动化"设置"过程......顺便说一下:是否可能?)但是我认为有更好的方法来解决这个问题.如果是这样,我该怎么办?

ruby ubuntu ruby-on-rails paperclip ruby-on-rails-3

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

如何在句子中"转换"数组?

我正在使用Ruby on Rails v3.0.9,我想在一个句子中"转换"一个字符串数组,包括标点符号.也就是说,如果我有一个如下所示的数组:

["element 1", "element 2", "element 3"]
Run Code Online (Sandbox Code Playgroud)

我想得到\ build:

# Note: I added 'Elements are: ' at the begin, ',' between elements and '.' at
# the end.
"Elements are: element 1, element 2, element 3."
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

ruby arrays ruby-on-rails ruby-on-rails-3 sentence

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

如何将一些参数传递给默认的渲染方法?

我正在使用Ruby on Rails 3.0.10,我想将一些参数传递给默认的渲染方法.也就是说,如果我有一个类似的代码

def show
  ...

  respond_to do |format|
    format.html # This, by default, renders the 'show.html.erb' file
   end
end
Run Code Online (Sandbox Code Playgroud)

我想传递一些参数,也许就像(注意:以下不起作用)

def show
  ...

  respond_to do |format|
    # Here I would like to add some local objects that will be available in the 'show.html.erb' template file
    format.html { render ..., :locals => { :content => { :value => 'Sample value' } } }
   end
end
Run Code Online (Sandbox Code Playgroud)

所以在show.html.erb模板中我可以做类似的事情:

<%=
  content[:value]
  # => 'Sample value'
%>
Run Code Online (Sandbox Code Playgroud)

简而言之,我想以与为与:locals键相关的部分模板渲染所做的相同方式传递参数值 …

ruby parameters rendering ruby-on-rails ruby-on-rails-3

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

如果满足某些条件,如何"触摸"`belongs_to`关联的父模型?

我正在使用Rails 3.1.0,我想belongs_to只在满足某些条件时"触摸" 关联的父模型.

例如,此时我有:

belongs_to :article,
  :touch => true
Run Code Online (Sandbox Code Playgroud)

只有当它是"公共"时,我才会"触摸"父模型.也就是说,Article该类有一个名为access(@article.access=> publicprivate)的属性,我想在"触摸"之前检查这个值:如果这个值不是 public,那么"触摸"它!

是否可以在belongs_to关联声明中"直接"进行?如果是这样,怎么样?

ruby ruby-on-rails touch ruby-on-rails-3 ruby-on-rails-3.1

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

理解"后续"mixin模块的`include`语句行为

我试图理解include在多个Mixins中使用时的语句行为.也就是说,我有这些陈述:

class Article < ActiveRecord::Base
  include DoubleIncludedModule
  include AModule

  # ...
end

module AModule
  include DoubleIncludedModule

  # ...
end

module DoubleIncludedModule
  # ...
end
Run Code Online (Sandbox Code Playgroud)

课程中会DoubleIncludedModule包含多少次Article?也就是说,由于"后续"包含DoubleIncludedModule(首先在Article类中,然后在类本身中AModule包含Article),将是由Ruby自动处理的"双重包含"问题还是DoubleIncludedModule(错误地)包含两次?

当然,我想只包含一次DoubleIncludedModule模块.我怎样才能以正确的方式实现(可能通过使用一些Ruby on Rails方法)?

ruby module ruby-on-rails include

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

如何在模块中对类方法进行别名?

我正在使用Ruby v1.9.2和Ruby on Rails v3.2.2 gem.我有以下模块

module MyModule
  extend ActiveSupport::Concern

  included do
    def self.my_method(arg1, arg2)
      ...
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我想为类方法 添加别名my_method.所以,我说了以下(不工作)代码:

module MyModule
  extend ActiveSupport::Concern

  included do
    def self.my_method(arg1, arg2)
      ...
    end

    # Note: the following code doesn't work (it raises "NameError: undefined
    # local variable or method `new_name' for #<Class:0x00000101412b00>").
    def self.alias_class_method(new_name, old_name)
      class << self
        alias_method new_name, old_name
      end
    end

    alias_class_method :my_new_method, :my_method
  end
end
Run Code Online (Sandbox Code Playgroud)

换句话说,我想在Module某种程度上扩展这个类,以便添加一个alias_class_method可用的方法MyModule.但是,我想让它工作 …

ruby metaprogramming ruby-on-rails core extending

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

如何`Serial.print()`"完整"十六进制字节?

我正在编程Arduino,我正在尝试Serial.print()十六进制格式的字节"我的方式"(继续阅读更多信息).

也就是说,通过使用以下代码

byte byte1 = 0xA2;
byte byte2 = 0x05;
byte byte3 = 0x00;

Serial.println(byte1, HEX);
Serial.println(byte2, HEX);
Serial.println(byte3, HEX);
Run Code Online (Sandbox Code Playgroud)

我在串行监视器中得到以下输出:

A2
5
0
Run Code Online (Sandbox Code Playgroud)

但是我想输出以下内容:

A2
05
00
Run Code Online (Sandbox Code Playgroud)

在的话,我想打印的"全"的十六进制值包括0S(05而不是000代替0).

我该怎么做?

c++ hex byte arduino println

5
推荐指数
2
解决办法
3万
查看次数