基于用户表单的动态Active Record Store访问器?

Active Record Store允许您序列化单个单元格内的参数。 即 class User < ActiveRecord::Base store :options, accessors: [ :option1, :option2, :another_random_option ] end 现在,所有访问器都在users表的“options”列中序列化。 u = User.new u.option2 = ‘some option’ u.option2 # => ‘some option’ 这对我的应用程序很有用,因为我必须每天创建许多表单,其中90%的表单是相同的(用户名,爱好,兴趣等),然后10%是无模式(random_option_here,another_random_option_in_another_form) 。 我也从不需要按无架构选项排序。 我做的是我为90%的表单字段创建了1个表,它们始终是相同的,然后我有另一个表,其中包含最后10%的字段(我有另一个表的原因是因为这是belongs_to关系,因此用户可以在此表中有许多行)。 … 现在唯一的问题是每次我在自定义表单中创建一个新字段时,我必须将该参数添加到Active Record Store访问器,否则我会得到一个方法缺失错误。 如果我可以进入并为无模式字段创建尽可能多的View表单并且永远不更新模型中的访问器,那将是很好的。 所以我的问题是:是否有动态添加所有用户提交的自定义字段到访问者数组,这样如果用户提交字段“some_random_option1221”,“another_option_here”然后我不必进入访问者数组并添加那个领域? 谢谢!

Rails – 基于第一个字母进行搜索和排序

我想根据字母列表列出用户…即当我点击字母“A”时,它应该列出以字母A开头的所有用户,B,C等的相同情况。 为此,我使用的是代码 @users = User.search(params[:char]) 在params[:char]我正在传递字母(a,b,c,d等)。 此代码使用此字母搜索单词。 相反,我想要一个以特定字母开头的用户列表。 请问你能建议怎么做。 谢谢。

使用rails的最佳javascript库?

我想开发一个简单的类似测验游戏的应用程序(想想问题,答案,计时器,高分/排名,不多) 为此,我想使用Rails和一些javascript库,让我在GUI上有一些现代效果(作为一个GUI,你可以问的最少的是一个atractive接口) 我首先考虑过ExtJS,但现在我觉得这个太严重了。 还有数以百万计的原型扩展( http://stickmanlabs.com/lightwindow/ http://underwhelm.net/pinwheel/等)看起来更随意但不知道它们是否能很好地与rails配合使用 那么当后端将成为Rails时,通常最好的Javascript gui / widgets库是什么? 在我的特殊情况下你会推荐什么?

Ruby / Rails 3.1:给定一个URL字符串,删除路径

给定任何有效的HTTP / HTTPS字符串,我想解析/转换它,使得最终结果正好是字符串的根。 给定的URL: http://foo.example.com:8080/whatsit/foo.bar?x=y https://example.net/ 我想结果: http://foo.example.com:8080/ https://example.net/ 我发现URI :: Parser的文档不是非常平易近人的。 我最初的,天真的解决方案是一个简单的正则表达式: /\A(https?:\/\/[^\/]+\/)/ (即:匹配协议后的第一个斜杠。) 欢迎思考和解决方案。 如果这是重复的,请道歉,但我的搜索结果不相关。

Ruby代码不在任何方法中

一般Ruby问题:在Ruby中,我经常看到类中的代码,但不是方法的一部分。 例如: class DooDad attr_accessor :foo end 要么 class Teacher < ActiveRecord::Base has_many :students end 我认为attr_accessor和has_many是分别用:foo或:students参数调用的方法,是吗? 如果是这样,何时执行这些类型的语句。 我试过这个: class DooDad attr_accessor :foo puts “I happened!” @foo = 7 end 它似乎没有运行这些new方法的一部分: dd = DooDad.new dd.foo 输出nil,永远不会吐出任何东西 这一切究竟是如何运作的?

即使我的应用程序使用捆绑包,我是否需要将乘客安装为常规gem?

我试图设置一个新的服务器来托管Rails应用程序,并希望干净安装所有组件,所以我决定使用rvm + bundler。 这是我第一次设置Rails服务器。 我之前使用过捆绑式应用程序,我了解它如何管理应用程序的依赖…但是因为我正在安装Passenger,因为这是托管环境的依赖性,我需要在盒子本身做一个“gem安装乘客”捆绑这种依赖,对吧? 或者我应该将乘客放在应用程序的Gemfile中?

如何使用Chef设置环境变量?

这是一个类似的问题,但无法管理它:我想简单地设置一个env变量,然后使用它: execute “start zookeeper” do cwd “/opt/zookeeper-3.4.5/bin” command “./zkServer.sh start” environment “JVMFLAGS” => “-Xmx#{heap_jvm} -Xms#{heap_jvm}” user “root” action :run end 我也尝试使用bash “export JVMFLAGS=’-blabla'”但仍然运行sh而没有设置变量。 是否存在阻止我的sh脚本检查变量的问题? 我可以像模板一样使用sh并替换JVMFLAGS的发生…但我想检查是否有更好的解决方案..

简单使用EM :: Synchrony#sync导致’根光纤’FiberError – 我的错?

这个计划 require ’em-synchrony’ ## v1.0.0 require ’em-hiredis’ ## v0.1.0 module EventMachine module Hiredis class Client def self.connect(host = ‘localhost’, port = 6379) conn = new(host, port) EM::Synchrony.sync conn.connect conn end alias :old_method_missing :method_missing def method_missing(sym, *args) EM::Synchrony.sync old_method_missing(sym, *args) end end end end EventMachine.synchrony do redis = EM::Hiredis.connect redis.set(‘foo’, ‘bar’) puts redis.get(‘foo’) EM.stop end 像这样死 […]

Ruby on Rails:在单个数据库单元中保存多个值

如何在Ruby on Rails应用程序中的单个单元格记录中保存多个值? 如果我有一个名为Exp的表,其名称为: Education , Experience和Skill ,如果我希望用户在一行中存储多个值,例如:教育机构或技能,那么最佳做法是什么? 我想让用户使用多个文本字段,但应该进入相同的单元格记录。 例如,如果用户具有多种技能,那么这些技能应该在一个单元格中? 这会是最好的还是会更好,如果我创建一个新技能表? 请指教, 谢谢

脚本在命令行中成功执行,但不是作为cronjob执行

我有一个bash脚本运行一个ruby脚本来获取我的twitter提要。 ## /home/username/twittercron #!/bin/bash cd /home/username/twitter ruby twitter.rb friends 它在命令行中成功运行。 /home/username/twittercron 但是当我尝试将其作为cronjob运行时,它运行但无法获取提要。 ## crontab -e */15 * * * * * /home/username/twittercron 该脚本已经是chmod + x。 不知道为什么会这样。 有任何想法吗?