Questions tagged «ruby-on-rails»

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

4
如何通过与Mongoid和mongodb的关系来实现has_many:?
使用Rails指南中的修改示例,如何使用mongoid为关系“ has_many:through”关联建模? 挑战在于,mongoid不像ActiveRecord那样支持has_many:through。 # doctor checking out patient class Physician < ActiveRecord::Base has_many :appointments has_many :patients, :through => :appointments has_many :meeting_notes, :through => :appointments end # notes taken during the appointment class MeetingNote < ActiveRecord::Base has_many :appointments has_many :patients, :through => :appointments has_many :physicians, :through => :appointments end # the …

8
没有记录时使用nil的find()
在我当前的Rails程序中,当我使用类似 user = User.find(10) 当没有ID = 10的用户时,我将遇到类似以下的异常: ActiveRecord::RecordNotFound: Couldn't find User with ID=10 我可以得到nil而不是引发异常,所以当我做类似的事情时: unless user = Challenge.find(10) puts "some error msg" end 我只想在没有记录且不想使用开始/救援时得到nil 谢谢

8
如何确定在after_save中是否只是创建或更新记录
#new_record?函数确定记录是否已保存。但这总是错误的after_save。有没有一种方法可以确定记录是新创建的记录还是更新后的旧记录? 我希望不要使用其他回调,例如before_create在模型中设置标志或要求对数据库进行其他查询。 任何建议表示赞赏。 编辑:需要确定它after_save,对于我的特定用例,没有updated_at或没有updated_on时间戳


2
在Rails 4中使用has_many:through:uniq时弃用警告
在has_many:through中使用:uniq => true时,Rails 4引入了弃用警告。例如: has_many :donors, :through => :donations, :uniq => true 产生以下警告: DEPRECATION WARNING: The following options in your Goal.has_many :donors declaration are deprecated: :uniq. Please use a scope block instead. For example, the following: has_many :spam_comments, conditions: { spam: true }, class_name: 'Comment' should be rewritten as the …

4
将应用程序推送到heroku问题
我试图将我的应用程序推送到heroku,并且收到以下消息: $ heroku create Creating electric-meadow-15..... done Created http://electric-meadow-15.heroku.com/ | git@heroku.com:electric-meadow-1 5.git $ git push heroku master ! No such app as fierce-fog-63 fatal: The remote end hung up unexpectedly 我现在明白了,这很奇怪,我已经将应用程序多次推送到heroku了,没有出现问题。最奇怪的是,这fierce-fog-63是我很久以前制作并删除的旧应用。为什么现在heroku尝试推送到该应用程序不再存在,特别是当我创建了一个新应用程序时?有什么建议?

13
Rails电子邮件验证的最新技术是什么?
您使用什么来验证用户的电子邮件地址,为什么? 我一直在使用validates_email_veracity_of哪个实际查询MX服务器。但是由于种种原因,这充满了失败,主要与网络流量和可靠性有关。 我环顾四周,找不到很多人用来对电子邮件地址进行完整性检查的明显信息。是否有为此维护的,相当准确的插件或gem? PS:请不要告诉我发送带有链接的电子邮件,以查看该电子邮件是否有效。我正在开发“发送给朋友”功能,因此这不切实际。

2
Rails控制台:重新加载!没有反映模型文件中的更改?可能是什么原因?
之前它工作正常。我一直在玩一些配置。所以可能是我在不知不觉中更改了一些配置。 这是环境/ development.rb的配置 config.cache_classes = false # Log error messages when you accidentally call methods on nil. config.whiny_nils = true # Show full error reports and disable caching config.consider_all_requests_local = true config.action_view.debug_rjs = true config.action_controller.perform_caching = false # Don't care if the mailer can't send config.action_mailer.raise_delivery_errors = false # Print …

5
Rails按属性值过滤对象数组
因此,我对数据库执行查询,并且有完整的对象数组: @attachments = Job.find(1).attachments 现在,我有对象,我不想执行另一个数据库查询的数组,但我想基于对数组筛选Attachment对象的file_type,这样我可以有一个列表attachments,其中文件类型为'logo',然后另一个列表attachments哪里文件类型是'image' 像这样: @logos = @attachments.where("file_type = ?", 'logo') @images = @attachments.where("file_type = ?", 'image') 但是在内存而不是数据库查询中。


12
从Rails应用发送电子邮件时,Net :: SMTPAuthenticationError(在暂存环境中)
我正在从Rails应用程序发送电子邮件。它在开发环境上运行良好,但在暂存上失败。我收到以下错误: Net::SMTPAuthenticationError (534-5.7.14 <https://accounts.google.com/ContinueSignIn?plt=AKgnsbtdF0yjrQccTO2D_6) 请注意,我没有暂存域名。 这是我在staging.rb中的设置 config.action_mailer.delivery_method = :smtp config.action_mailer.default_url_options = { :host => "my.ip.addr.here:80" } config.action_mailer.smtp_settings = { :address => "smtp.gmail.com", :port => 587, :domain => 'my.ip.addr.here:80' :user_name => "my_email_name@gmail.com", :password => "my_email_password", :authentication => 'login' } 请帮忙。 编辑。 添加:tls => true选项后,我得到 OpenSSL::SSL::SSLError (Unrecognized SSL message, plaintext connection?) 然后我将端口更改为25,现在我得到了(延迟30秒): …


6
在Rails 3中将UTC转换为当地时间
我在Rails 3 中无法转换UTC Time或TimeWithZone本地时间。 说的moment是TimeUTC中的一些变量(例如moment = Time.now.utc)。如何moment在照顾DST的情况下(即使用EST / EDT)转换为我的时区? 更准确地说,如果时间与美国东部时间今天上午9点相对应,我想打印“ 3月14日星期一,上午9点”,如果时间与上周一美国东部时间上午9点相对应,请打印“ 3月7日,星期一上午9点​​”。 希望有另一种方式? 编辑:我首先认为 “ EDT”应该是公认的时区,但“ EDT”不是实际的时区,更像是时区的状态。例如,要求没有任何意义Time.utc(2011,1,1).in_time_zone("EDT")。这有点令人困惑,因为“ EST” 是实际的时区,在一些不使用夏令时且使用(UTC-5)的地方使用了一年。

5
Rails 5,未定义方法`for',用于#<Devise在线devise_parameter_sanitizer.for
我正在使用Rails 5 我在模型User中添加了新的字段用户名。 class Users::RegistrationsController &lt; Devise::RegistrationsController before_action :configure_permitted_parameters protected def configure_permitted_parameters devise_parameter_sanitizer.for(:sign_up).push(:username) end end 注册期间显示错误:#的未定义方法“ for”,是您的意思吗?叉子 跟踪: NoMethodError(#的未定义方法“ for”是什么意思?fork): app/controllers/users/registrations_controller.rb:7:in `configure_permitted_parameters' Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb (5.0ms) Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (2.9ms) Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.2ms) Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (118.1ms) 谁能帮忙?如何解决这个问题?

1
如何在Rails的两列上实现唯一索引
我有一张桌子,我想在两列上添加唯一索引。这些列也被索引。所以我的问题是我是否可以删除仅用于一列的索引,或者是否必须使用所有三个索引: add_index "subscriptions", ["user_id"] add_index "subscriptions", ["content_id"] add_index "subscriptions", ["user_id"], ["content_id"], :unique =&gt; true

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.