小编Sim*_*tti的帖子

你能做一个:找到后在红宝石中订购吗?

在执行查找后,ruby/rails是否可以对结果集进行排序?例如,是否可以做这样的事情

警告:不起作用

if type == 1
  @items = mycompany.items
else
  @items = myhome.items
end

@items = @items :order => "created_at"
Run Code Online (Sandbox Code Playgroud)

我会假设这样的事情应该是可能的,但我仍然是RoR的新手,似乎无法在谷歌上找到任何东西.

ruby activerecord ruby-on-rails

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

正则表达式:匹配包含数字和字母的字符串,但不包含只是数字的字符串

我希望能够使用单个正则表达式(如果可能)要求字符串适合[A-Za-z0-9_]但不允许:

  • 字符串只包含数字或/和符号.
  • 以符号开头或结尾的字符串
  • 彼此相邻的多个符号

有效

  • test_0123
  • t0e1s2t3
  • 0123_test
  • te0_s1t23
  • t_t

无效

  • t__t
  • ____
  • 01230123
  • _0123
  • _test
  • _test123
  • test_
  • test123_

规则的原因

这样做的目的是过滤我正在处理的网站的用户名.出于特定原因,我已达到规则.

  • 仅包含数字和/或符号的用户名可能会导致路由和数据库查找出现问题./users/#{id}允许的路由id是用户的id或用户的名称.所以名称和ID不应该碰撞.

  • _test 看起来很奇怪,我不相信它是有效的子域名,即 _test.example.com

  • 我不喜欢t__t作为子域的外观.即t__t.example.com

ruby regex puzzle ruby-on-rails

3
推荐指数
1
解决办法
4527
查看次数

Rails多态关系和link_to

这是我的架构

class Menu < ActiveRecord::Base
  belongs_to :menuable, :polymorphic => true
end

class Page < ActiveRecord::Base
  has_one :menu, :as => :menuable
end

class Links < ActiveRecord::Base
  has_one :menu, :as => :menuable
end
Run Code Online (Sandbox Code Playgroud)

我想使用link_to链接到菜单视图中的多态类,例如

<%= link_to menu.name, menu.menuable %>
Run Code Online (Sandbox Code Playgroud)

这有效,但是当我想要的是生成链接时,这将从数据库中检索可菜单对象.你可以想象如果我的菜单很大,这将会让我的应用程序陷入困境.

当我将可菜单字段视为多态时,Rails创建了menuable_type和menuable_id.我可以使用什么来生成多态页面的链接,而不是使用巨型switch语句编写辅助函数(例如,如果我有大量可菜单的'子类'?)

ruby ruby-on-rails polymorphic-associations

3
推荐指数
1
解决办法
1797
查看次数

新项目的哪个版本的rails?

我将在明年初(2010年)开始使用Rails开展一个大型新项目.有人可以给我建议我应该使用哪个版本的Rails以及为什么?

ruby ruby-on-rails

3
推荐指数
1
解决办法
227
查看次数

用于PHP项目的Rails脚本/服务器

是否有一个简单的HTTP服务器可以在当前的PHP项目路径中运行,如Rails的脚本/服务器(webrick)?

php ruby-on-rails webrick

3
推荐指数
1
解决办法
317
查看次数

ruby on Rails:如何更改选择列表中选项的背景颜色

我想从模型中提取颜色列表并将颜色选择列表放入视图中。选项具有颜色代码的价值。我想将选项的背景颜色更改为其值。以下是我尝试做的两种方法,但结果是它会改变整个选择列表的颜色,但不会改变具有单个颜色的单个选项的颜色。

<p>
    <b>Background color</b><br />    
    collection_select(:setting, :bg_color, @colors, :code, :name, 
    options ={:prompt => "-Select a color"}, html_options = {:style => "background-color: #3f3"})
  </p>

  <p>
    <b>New Background color</b><br />
 select_tag("setting[bg_color]", "<option>-Select a color</option>" + 
  options_from_collection_for_select(@colors, :code, :name, html_options = {:style => "background-color: #3f3"})) 
  </p>
Run Code Online (Sandbox Code Playgroud)

我希望它生成类似以下内容的内容:

<option value='color_code' style='background-color: color_code'  >color_name</option> 
Run Code Online (Sandbox Code Playgroud)

这样,选项中的颜色对用户也是可见的。

无论如何,我们可以自定义选项吗?

提前致谢。

select ruby-on-rails list

3
推荐指数
1
解决办法
3812
查看次数

为什么'logger.debug false'没有打印任何东西?

我有一个布尔表达式的问题,当我做了一个logger.debug我得到了奇怪的结果,所以我将我的日志代码简化为以下内容,并且惊讶地看不到任何'false'被打印.

在我的控制器中记录代码:

logger.debug 'true'
logger.debug true
logger.debug
logger.debug 'false'
logger.debug false
logger.debug
logger.debug '1 == 1'
logger.debug 1 == 1
logger.debug
logger.debug '1 == 0'
logger.debug 1 == 0
Run Code Online (Sandbox Code Playgroud)

其中打印出以下内容

true
true

false


1 == 1
true

1 == 0
Run Code Online (Sandbox Code Playgroud)

......?我希望看到错误.当我在控制台中运行'1 == 0'或'put false'时,我得到了错误.我错过了什么吗?

任何想法为什么不打印'假'?

ruby版本:1.8.7-p352

rails版本:2.3.2

ruby ruby-on-rails ruby-1.8 ruby-on-rails-2

3
推荐指数
1
解决办法
397
查看次数

选择数据库中的所有内容并按顺序排序

我正在做以下查询......

Status.where(:status => params[:cat_id])
Run Code Online (Sandbox Code Playgroud)

但是我想通过created_at列来排序结果.我尝试过所有符合逻辑的东西

Status.where(:status => params[:cat_id]), :order => "created_at DESC"
Run Code Online (Sandbox Code Playgroud)

Status.where(:status => params[:cat_id], :order => "created_at DESC")
Run Code Online (Sandbox Code Playgroud)

但似乎没什么用.

订购结果的最佳方法是什么?

非常感谢任何帮助,谢谢!

activerecord ruby-on-rails

3
推荐指数
1
解决办法
7364
查看次数

Rails - find_by_sql vs活动记录查询

我想使用find_by_sql方法代替活动记录查询接口,因为我在编写自己的SQL时具有灵活性.

例如,

  1. 在SQL中,将查询中的表从最小到最大排序,这被认为是一种很好的做法.使用活动记录查询界面时,您必须从可能是最大表的结果模型开始.

  2. 我还可以通过在连接本身中包含目标表并包含多个表中所需的列来轻松避免N + 1问题.

    我想知道是否有理由我不应该使用find_by_sql选项,特别是当我将编写ANSI SQL时,它应该与所有(如果不是大多数)数据库兼容.

谢谢!

sql ruby-on-rails rails-activerecord

3
推荐指数
1
解决办法
1524
查看次数

如何写下rspec来测试救援块.

我有这样的方法

def className  
  def method_name
    some code  
  rescue  
    some code and error message  
  end  
end
Run Code Online (Sandbox Code Playgroud)

那么,如何写下rspec来测试救援块..?

ruby rspec ruby-on-rails rescue

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