小编Rya*_*igg的帖子

动态CMS类似于轨道上的红宝石路线

我想创建一个类似CMS的站点,用户可以从一些通用页面开始,即

  • 主页
  • 关于
  • 联系
  • 等等

例如,从那里可以动态添加子页面

  • 主页
    • 用品
      • 第1条
        • 某物
          • 东西,别的
      • 第二条
  • 关于
  • 联系
  • 等等

为了达到这个目的,我计划使用某种自我指涉关联

class Page < ActiveRecord::Base
  belongs_to :parent, :class_name => 'Page'
  has_many :children, :class_name => 'Page'
end
Run Code Online (Sandbox Code Playgroud)

我正在努力的一件事是路线生成.因为页面可以动态添加,我需要为这些页面动态生成路由,并且无法知道页面可以嵌套多少层次

所以,如果我从主页开始:/

然后开始添加页面即

/用品/第一条/某事/东西,否则/另一个,事情

如何使用rails路由模型实现类似的功能?

ruby-on-rails

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

从Rails访问PostGIS空间数据

我需要使用Rails应用程序中的现有PostGIS数据库.到目前为止,我能够很好地访问数据库,GeoRuby很好地将'geom'列转换为Point对象.

我正在寻找的是一种在这些表上执行类似ActiveRecord的查询的简单方法,例如

Poi.find_within_radius(...)
Run Code Online (Sandbox Code Playgroud)

或类似的空间查询,如距离计算等.人.

我尝试了几种geokit组合,附带了rails插件,但我确信在ruby/rails宇宙中必须有更好的东西.任何提示?

postgis ruby-on-rails spatial

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

用户在Rails中指定了动态模型字段

有没有人知道宝石或允许用户向模型添加字段的良好实现?

防爆.

用户希望在联系人模型中添加"内部注释"字段.在界面中,他们只需选择"新字段">"类型:文本"

谢谢

activerecord ruby-on-rails

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

关于Rails的BDD - 社区是否更接近于Shoulda或RSpec?

对于一个新的应用程序,我想开始涉足BDD,我试图在使用RSpec或Thoughtbot的Shoulda之间做出决定.我喜欢Shoulda使用的宏,以及它似乎没有重新发明Ruby/Rails测试的方式,而只是提供了一个附加组件.另一方面,宏似乎有点太"神奇",而不是明确你正在测试的东西(但是我知道,从涉及写一打很烦人"应该是无效的,没有xxx"两行上一个模型).说实话,我发现编写模型的规格/测试很简单,而且几乎非常容易,但我觉得为控制器编写它们是非常困难的,因为我不确定我应该测试什么或者如何编写它.

因为我认为它们给你错误的假设(因为你可以告诉它认为它有你需要的任何数据或者假装方法X被调用)我不知道嘲弄和抄写的主题我知道RSpec重使用它们.我喜欢RSPec生成的文档,但我正在创建一个销售应用程序,而不是给客户端,因此漂亮的文档并没有那么有用.我喜欢Cucumber,但它似乎有点矫枉过正(是的,我知道它可以和Shoulda一起使用).

在这一点上,Rails社区支持RSpec或Shoulda?

bdd rspec ruby-on-rails shoulda

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

如何确定给定URL字符串的Controller类

在Rails控制器或视图的范围内:如何查询Rails路由机制以将相对url字符串(例如"/ controllername/action/whatever")转换为负责处理该请求的控制器类?

我想做这样的事情:

controllerClass = someMethod("/controllername/action/whatever")
Run Code Online (Sandbox Code Playgroud)

contorllerClass是Class的一个实例.

我不想对路由约定做任何假设,例如.以上示例中的"controllername"始终是控制器的名称(因为它不是).

ruby-on-rails

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

Rails使用URL哈希路由(window.location.hash)

有没有办法在routes.rb或控制器中获取URL的哈希值(例如/ posts/show#35中的"35")?

我的印象是这从未发送到服务器,但我只是想确定.

谢谢!

汤姆

ruby-on-rails

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

渴望在ActiveRecord中加载多态关联

这是我第一次使用Rails,我想知道是否可以在一个SQL查询中加载一个多态关联?它们之间的模型和关联足够基本:资产模型/表可以通过多态关联引用内容(图像,文本或音频),即

class Asset < ActiveRecord::Base
  :belongs_to :content, :polymorphic => true
end

图像,文本,音频定义如下:

class Image < ActiveRecord::Base
  :has_one :asset, :as => :content
end

当我尝试加载图片时,请这样说:

Image.first(
      :conditions => {:id => id},
      :include => :asset
)

它指定了两个查询,一个用于检索Image,另一个用于检索资产(FYI,如果我指定a,也会发生这种情况:joins).根据我的理解,ActiveRecord这样做是因为它不知道Image和Asset之间存在一对一的关联.有没有办法强制连接并一次检索2个对象?我也尝试使用自定义选择连接,但我最终必须手动创建ActiveRecord模型及其关联.

ActiveRecord是否提供了这样做的方法?

activerecord ruby-on-rails polymorphic-associations

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

Apache BalancerMember可以配置为使用unix域套接字吗?

我正在使用Apache Proxy balancer指令来连接一组瘦服务器(用于Rails).

像这样:

  <Proxy balancer://thinservers>
    BalancerMember http://127.0.0.1:5000 route=thin0
    BalancerMember http://127.0.0.1:5001 route=thin1
    BalancerMember http://127.0.0.1:5002 route=thin2
  </Proxy>
Run Code Online (Sandbox Code Playgroud)

但是,thin也可以配置为使用unix域套接字.

所以我希望能够做到这样的事情:

  <Proxy balancer://thinservers>
    BalancerMember unix://tmp/thin.0.sock route=thin0
    BalancerMember unix://tmp/thin.1.sock route=thin1
    BalancerMember unix://tmp/thin.2.sock route=thin2
  </Proxy>
Run Code Online (Sandbox Code Playgroud)

但Apache没有接受它.显然nginx可以做到,但我真的想使用Apache.

有办法吗?

apache ruby-on-rails mod-proxy thin

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

Rails:searchlogic搜索或条件

我在版本2.3.5中使用'binarylogic-searchlogic'gem以及Rails 2.3.4.

我想要做的是在模型上搜索多个属性上的指定值.我通过将所有东西链接在一起来实现这一点

User.first_name_or_last_name_or_email_like(value)
Run Code Online (Sandbox Code Playgroud)

但是在这个搜索中有越来越多的属性,这往往是丑陋的.相反,我想使用searchlogic的搜索机制,如下所示:

search = User.search
search.first_name_like = value
search.last_name_like  = value
..
@users = search.all
Run Code Online (Sandbox Code Playgroud)

所以这是通过AND搜索的方式 - 但我想要的是OR.我找到了两种方法来实现这一目标,但两种方法都不起作用.

第一个:在条件前面加上or_

search = User.search
search.first_name_like = value
search.or_last_name_like  = value
@users = search.all
Run Code Online (Sandbox Code Playgroud)

这给了我 The or_last_name_like is not a valid condition. You may only use conditions that map to a named scope

第二个:使用 search.any

search = User.search
search.first_name_like = value
search.last_name_like  = value
@users = search.any
Run Code Online (Sandbox Code Playgroud)

给了我undefined method任何'for #`.

有什么想法吗?我是否认为自述的正确点?

谢谢你非常欢迎的帮助!

编辑:一些丑陋的解决方法的时间:

search = User.search
search.first_name_like …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails searchlogic

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

Rails link_to onclick javascript中的ruby变量

什么是错误的这句话它显示语法错误

<%= link_to image_tag('cancel.png'), {:action => 'remove', :id => question.id}, :title=>'Delete', :class=>'action', :onclick=>"removeQuestion("+ question.id +");return false;"%>
Run Code Online (Sandbox Code Playgroud)

<%= link_to image_tag('cancel.png'), {:action => 'remove', :id => question.id}, :title=>'Delete', :class=>'action', :onclick=>"removeQuestion();return false;"%>
Run Code Online (Sandbox Code Playgroud)

正确生成以下代码

<a title="Delete" onclick="removeQuestion();return false" class="action remove" href="/quizzes/remove/1"><img src="/images/cancel.png?1290165811" alt="Cancel"></a>
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails

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