小编jay*_*del的帖子

按环境限制路线

我们(我和我的所有人物,当然)有几条路线,我们不希望在生产中暴露,但我们在开发和测试中使用.我知道你可以(或可以?)在控制器中添加一个前置过滤器来根据环境锁定这些东西,但这可以通过config/routes.rb完成吗?

谢谢

routes ruby-on-rails ruby-on-rails-3

9
推荐指数
1
解决办法
2965
查看次数

awesome_print没有显示关联的对象

如何让AwesomePrint.ap显示嵌套在对象中的关联对象?默认情况下它没有这样做,我假设有办法强迫它?

printing ruby-on-rails awesomeprint

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

在Rails中实现查找表

我目前正在使用(或尝试使用)查找表来表示包含枚举字符串的列.我与我的团队进行了广泛的讨论,以确保这是我们想要的方向,并决定继续进行,但不幸的是,我们都不知道如何使用迁移将查找表与列绑定,如果有更改,在模型/控制器/视图中进行以支持这种新行为.

我已经广泛搜索了这个并没有找到这样做的好例子,所以我希望有人可以告诉我一个与我在搜索中错过的教程的精彩链接,或者描述如何做到这一点.我也很想知道是否有非官方(或官方)Railsy模式.

提前致谢.

ruby ruby-on-rails lookup-tables

6
推荐指数
2
解决办法
6183
查看次数

Ruby正则表达式问题与String上的sub方法有关

我正在阅读Koans教程(这是一个很好的学习方法),我遇到了这样的说法:

assert_equal __, "one two-three".sub(/(t\w*)/) { $1[0, 1] }
Run Code Online (Sandbox Code Playgroud)

在这个语句中,__是我应该放置我的预期结果以使测试正确执行的地方.我已经盯着它看了一段时间并将其中的大部分分开,但我无法弄清楚最后一点意味着什么:

{ $1[0, 1] }
Run Code Online (Sandbox Code Playgroud)

预期的答案是:

"one t-three"
Run Code Online (Sandbox Code Playgroud)

我期待着:

"t-t"
Run Code Online (Sandbox Code Playgroud)

ruby regex

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

Rails 3.0 - 最佳实践:模型对象的多个子类型

所以这可能是一个相当容易回答的问题,但无论如何都要进行.

我想拥有这个视图,比如media_objects /,它显示了一个媒体对象列表.够容易吧?但是,我希望媒体对象列表是MediaObject,CDMediaObject,DVDMediaObject等子类型的集合.这些子类型中的每一个都需要使用db表来表示特定的元数据集,这些元数据在子类型中并不完全相同.

我的第一个传递是为每个子类型创建一个模型,将MediaObject变得足够聪明,以便在其概念性的"所有"行为上加入这些表.这看起来很简单,但我最终做了许多小东西,感觉不是那么棒,所以我想在这里寻求建议.

显然,我没有这个例子的具体代码,但如果你有问题,我很乐意编辑这个问题来提供这些信息......

谢谢!

inheritance ruby-on-rails

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

git重新连接到远程存储库

我犯了一个巨大的错误,导致我的项目的本地版本不再与曾经关联的远程存储库连接.是否有一些技巧可以重新建立连接/关联而不会吹掉本地版本的代码?

git

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

ActiveRecord to_json:有条件地包括关联

当我在模型上使用.to_json时,我正试图找到一种有条件地包含关联模型的方法.

在一个简化的例子中,假设以下两个模型:

class Foo < ActiveRecord::Base
  has_many :bars
end

class Bar < ActiveRecord::Base
  belongs_to :foo
  attr_accessible :bar_type
end 
Run Code Online (Sandbox Code Playgroud)

我目前有:

f = Foo.find "3"
j = f.to_json(:include => { :bars => {:some, :attributes}}
Run Code Online (Sandbox Code Playgroud)

这很有效.我需要找到的方法只包括bar_type =='what?'的bar实例.

我希望有一种方法可以有条件地拉入条形实例,或者甚至可以使用范围来限制json输出中包含的条形.

ruby-on-rails

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

升级到Rails 4.2.6:rake db:将插入列限制迁移到schema.rb中

我发现很多我们的列limit: xxx在迁移中没有突然限制应用于列,而不是数据库本身,而是在我们的db/schema.rb文件中.当我们在任何环境中进行迁移时,这并不可怕.它变得麻烦的地方是我们设置新数据库时 - 它们不再匹配我们在各种prod/staging/qa环境中的数据库.

我需要找到一种不会发生这种情况的方法.

随着时间的推移我们添加一个迁移,我们最终不得不做一个非常复杂和乏味的git add -p db/schema.rb事情,随着时间的推移,我失去了对我们的db/schema.rb文件与任何版本的现实相匹配的信心.

作为一个数据点,如果我在rake db:migrate没有新的迁移的情况下运行,db/schema.rb将被重建,并且具有极其庞大的差异.

ruby-on-rails rails-migrations ruby-on-rails-4.2

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

HTTP状态代码作为put_status中的原子

我正在尝试用Phoenix和Elixir编写一个控制器动作.当一切按计划进行时,我用这一行设置http状态代码:

 put_status :ok
Run Code Online (Sandbox Code Playgroud)

这对我来说是一个有意义的世界.它很好地映射到200 http代码.但是,我正在研究非绿色路径,并且不能为我的生活找出用于其他http代码的原子.我在某处找到了一个引用:not_found online,我假设它映射到404.

我正在尝试返回.目前,我可以完成工作:

put_status 422
Run Code Online (Sandbox Code Playgroud)

但如果存在这样的事情,我宁愿使用适当的原子.

controller elixir phoenix-framework

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

Elixir 仅大写一个单词的第一个字母

我有一个字符串,我只需要将第一个字母大写。我还需要保留任何后续字母的大小写。一开始我是这么想的:

String.capitalize("hyperText") 
Run Code Online (Sandbox Code Playgroud)

会做的伎俩。但除了修复第一个字母外,它还将其余字母小写。我最终需要的是“超文本”。我最初的通行证是:

<<letter :: utf8, rest :: binary>> = word
upcased_first_letter = List.to_string([letter])
|> String.upcase()

upcased_first_letter <> rest
Run Code Online (Sandbox Code Playgroud)

这工作得很好,但它确实看起来很冗长,而且工作量也很大。我一直觉得有更好的方法。我只是没有看到它。

string elixir

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