Questions tagged «ruby-on-rails»

Ruby on Rails是一个用Ruby编写的开源全栈Web应用程序框架。它遵循流行的MVC框架模型,并以其“配置之上的约定”方法进行应用程序开发而闻名。


13
实施社交活动流的最佳方式是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 已关闭6年。 改善这个问题 我很想听听您的意见,这是实施社交活动流的最佳方法(Facebook是最著名的例子)。涉及的问题/挑战是: 不同类型的活动(发布,评论..) 不同类型的对象(帖子,评论,照片..) 1-n位用户扮演不同的角色(“用户x在用户Z帖子上回复了用户y的评论”) 相同活动项目的不同视图(“您评论..”与“您的朋友x评论”与“用户x评论..” =>“评论”活动的3种表示形式) 等等,尤其是如果您将其高度复杂化时,例如Facebook,例如,将多个活动项合并为一个(“用户x,y和z在该照片上发表了评论” 关于模式,纸张等的任何想法或指针,关于实现这种系统,数据模型等的最灵活,有效和强大的方法。 尽管大多数问题与平台无关,但我最终还是有可能在Ruby on Rails上实现这样的系统


28
软件包安装失败,并显示SSL证书验证错误
当我bundle install在Centos 5.5上运行Rails 3项目时,它失败并出现错误: Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://bb-m.rubygems.org/gems/multi_json-1.3.2.gem) An error occured while installing multi_json (1.3.2), and Bundler cannot continue. Make sure that `gem install multi_json -v '1.3.2'` succeeds before bundling. 当我尝试手动安装gem时(通过gem install multi_json -v '1.3.2'),它可以工作。其他几个宝石也会发生相同的问题。我使用RVM(1.12.3),ruby 1.9.2,bundler 1.1.3。 如何解决?

8
在控制台中禁用Rails SQL日志记录
在控制台中执行命令时,是否可以禁用SQL查询日志记录?理想情况下,如果我可以禁用它,然后在控制台中使用命令重新启用它,那就太好了。 我正在尝试调试某些内容,并使用“ puts”打印一些相关数据。但是,SQL查询输出使其难以阅读。 编辑: 我找到了另一个解决方案,因为如果除我的代码之外的其他东西试图调用logger,则将记录器设置为nil有时会引发错误。 除了将记录器设置为以外,nil您还可以将记录器的级别设置为1。 ActiveRecord::Base.logger.level = 1 # or Logger::INFO

17
Rails的完全自定义验证错误消息
使用Rails,我尝试在保存时收到错误消息,例如“歌曲字段不能为空”。执行以下操作: validates_presence_of :song_rep_xyz, :message => "can't be empty" ...仅显示“ Song Rep XYW不能为空”,这不好,因为该字段的标题不是用户友好的。如何更改字段本身的标题?我可以更改数据库中字段的实际名称,但是我有多个“歌曲”字段,并且确实需要具有特定的字段名称。 我不想修改Rails的验证过程,我觉得应该有一种解决方法。



3
Rails模型的默认排序顺序?
我想在模型中指定默认的排序顺序。 这样,当我.where()不指定而进行操作时,.order()它将使用默认排序。但是,如果指定.order(),它将覆盖默认值。

11
Rails:update_attribute与update_attributes
Object.update_attribute(:only_one_field, "Some Value") Object.update_attributes(:field1 => "value", :field2 => "value2", :field3 => "value3") 两者都将更新对象,而无需显式告知AR更新。 Rails API说: 用于update_attribute 更新单个属性并保存记录,而无需执行正常的验证过程。这对于现有记录上的布尔标志特别有用。混入验证模块时,Base中的常规update_attribute方法将替换为该方法,默认情况下为默认方法。 用于update_attributes 从传入的哈希中更新所有属性并保存记录。如果对象无效,则保存将失败并且将返回false。 因此,如果我不想验证对象,则应使用update_attribute。如果我在before_save上进行了更新,将会导致stackoverflow吗? 我的问题是,update_attribute是否也绕过了之前的保存或只是验证。 另外,将哈希传递给update_attributes的正确语法是什么...在顶部查看我的示例。


10
找不到Ruby套件符号:_SSLv2_client_method(LoadError)
我正在尝试使用自制软件对openssl进行一些更新,但我设法以某种方式破坏了一切。我现在什么也不能做,这是我尝试进行捆绑安装时得到的: $ bundle install /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': dlopen(/Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle, 9): Symbol not found: _SSLv2_client_method (LoadError) Referenced from: /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle Expected in: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib in /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle - /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/openssl.rb:17:in `<top (required)>' from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/security.rb:11:in `<top (required)>' from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/package.rb:43:in `<top (required)>' …

13
Ruby是通过引用还是通过值传递的?
@user.update_languages(params[:language][:language1], params[:language][:language2], params[:language][:language3]) lang_errors = @user.errors logger.debug "--------------------LANG_ERRORS----------101-------------" + lang_errors.full_messages.inspect if params[:user] @user.state = params[:user][:state] success = success & @user.save end logger.debug "--------------------LANG_ERRORS-------------102----------" + lang_errors.full_messages.inspect if lang_errors.full_messages.empty? @user对象lang_errors向update_lanugages方法中的变量添加错误。当我在@user对象上执行保存时,我丢失了最初存储在lang_errors变量中的错误。 虽然我尝试做的事更多的是破解(似乎没有用)。我想了解为什么变量值会被冲掉。我了解按引用传递,所以我想知道如何将值保留在该变量中而不会被淘汰。


9
如何返回一个空的ActiveRecord关系?
如果我有一个带lambda的作用域并且它接受一个参数,则取决于参数的值,我可能知道不会有任何匹配项,但是我仍然想返回一个关系,而不是一个空数组: scope :for_users, lambda { |users| users.any? ? where("user_id IN (?)", users.map(&:id).join(',')) : [] } 我真正想要的是“无”方法,与“全部”相反,该方法返回仍然可以链接的关系,但导致查询短路。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.