标签: ruby

铁轨和骨干一起工作

我刚刚开始关注MVC结构,首先我看看它是如何backbone.js工作的,现在我已经完成了Code School的僵尸轨道.我知道我没有深入研究这一点,但我有一个问题要开始.

你能一起使用这些库吗?

我已经学会了如何在两者中创建models,views等等,但是在创建一个真正的应用程序时,你是否同时使用主干和rails?

如果是这样...

你什么时候使用backbone.js模型而不是rails模型?

也许我只是领先于自己,需要继续练习和做教程,但我似乎无法直接找到任何东西.

谢谢!

javascript ruby model-view-controller ruby-on-rails backbone.js

35
推荐指数
1
解决办法
6817
查看次数

ActiveRecord查询中"includes"和"preload"之间有什么区别?

我很难找到ActiveRecord对象的includes()和preload()的比较.有人可以解释这个区别吗?

ruby activerecord ruby-on-rails

35
推荐指数
2
解决办法
9193
查看次数

轨.如何存储时间(按计划)?

我正在编写一个跟踪学校课程的应用程序.

我需要存储时间表.例如:周一至周五上午8点至上午11点.

我正在考虑使用一个简单的字符串列,但我将需要稍后进行时间计算.

例如,我需要存储8am的表示,例如start_at:8am end_at:11am

我该如何存储时间呢?我应该使用什么数据类型?我应该存储开始时间和秒数或分钟数,然后从那里计算?或者有更简单的方法吗?

我使用MySQL进行生产,使用SQLite进行开发.

ruby ruby-on-rails

35
推荐指数
4
解决办法
2万
查看次数

如何在新行之间拆分字符串并保留空白行?

鉴于ruby代码:

"aaaa\nbbbb\n\n".split(/\n/)
Run Code Online (Sandbox Code Playgroud)

这输出:

["aaaa", "bbbb"] 
Run Code Online (Sandbox Code Playgroud)

我希望输出包含指示的空白行\n\n- 我希望结果为:

["aaaa", "bbbb", ""]
Run Code Online (Sandbox Code Playgroud)

获得这个确切结果的最简单/最好的方法是什么?

ruby string split

35
推荐指数
2
解决办法
3万
查看次数

Ruby - Digest :: Digest已弃用; 使用摘要

每当我运行测试或启动rails服务器时,我都会收到此警告.

当我从.rvm文件夹运行grep时,我看到以下内容:

grep -R 'Digest::Digest' .
./rubies/ruby-2.1.0/lib/ruby/2.1.0/openssl/digest.rb: warn('Digest::Digest is deprecated; Use Digest')
- additional references to openssl and ruby 2.1.0
Run Code Online (Sandbox Code Playgroud)

所以它看起来像是一个Ruby 2.1.0错误.有没有修复?据我所知,目前还没有可用的补丁.

虽然我的应用程序使用Fog和其他一些与此消息有关的问题,但我使用的是没有错误的修补版本.所以我认为Ruby在这里有错.

ruby warnings ruby-2.1

35
推荐指数
3
解决办法
2万
查看次数

未定义的方法attr_accessible

我对rails很新,我正在尝试创建用户登录.我浏览了这里的教程.最后它让我为质量分配添加"attr_accessible".但是,当我这样做时,我收到以下错误:

undefined method `attr_accessible' for #<Class:0x007ff70f276010>
Run Code Online (Sandbox Code Playgroud)

我在这篇文章中看到我需要<ActiveRecord :: Base.但我确实包含了这一点.这是我的用户模型的代码:

class User < ActiveRecord::Base

  attr_accessor :password
  EMAIL_REGEX = /\A[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\z/i
  validates :username, :presence => true, :uniqueness => true, :length => { :in => 3..20 }
  validates :email, :presence => true, :uniqueness => true, :format => EMAIL_REGEX
  validates :password, :confirmation => true #password_confirmation attr
  validates_length_of :password, :in => 6..20, :on => :create
  before_save :encrypt_password
  after_save :clear_password
  attr_accessible :username, :email, :password, :password_confirmation

  def encrypt_password
    if password.present?
      self.salt = BCrypt::Engine.generate_salt
      self.encrypted_password= …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

35
推荐指数
3
解决办法
5万
查看次数

如何调试/显示使用RestClient发送的请求

我正在尝试使用RestClient使用post方法访问Web服务.我正在发送指定的授权令牌,但我仍然收到403状态错误,这意味着我被禁止使用该API.有什么方法可以看到使用http post发送的请求,以便我可以验证标头?我无法找到任何示例或任何文件提及如何做到这一点?

我的代码与此类似:

token = get_token

response = RestClient.post "https://api-dev.xxx.com/software/services/search/ABC",
  :authorization => "Bearer #{token}"
Run Code Online (Sandbox Code Playgroud)

ruby debugging http rest-client

35
推荐指数
2
解决办法
2万
查看次数

Rails 4.1 Mailer预览和设计自定义电子邮件

我有一个全新的Rails 4.1.1应用程序,我正在自定义Devise电子邮件.我想让它们显示在新的Rails电子邮件预览功能上,所以我做了以下事情:

1)在我的config/development.rb文件中添加了以下代码段:

config.action_mailer.preview_path = "#{Rails.root}/lib/mailer_previews"
Run Code Online (Sandbox Code Playgroud)

2)创建我的自定义设计的电子邮件UserMailerapp/mailers/user_mailer.rb:

class UserMailer < Devise::Mailer   
  helper :application # gives access to all helpers defined within `application_helper`.
  include Devise::Controllers::UrlHelpers # Optional. eg. `confirmation_url`

  layout "notifications_mailer"
end
Run Code Online (Sandbox Code Playgroud)

3)更改config/initializers/devise.rb为包含以下代码段:

config.mailer = 'UserMailer'
Run Code Online (Sandbox Code Playgroud)

4)添加了类UserMailerPreviewlib/mailer_previews用下面的内容:

class UserMailerPreview < ActionMailer::Preview
  def confirmation_instructions
    UserMailer.confirmation_instructions(User.first, {})
  end

  def reset_password_instructions
    UserMailer.reset_password_instructions(User.first, {})
  end

  def unlock_instructions
    UserMailer.unlock_instructions(User.first, {})
  end
end
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.看起来我已经做好了一切.但后来我尝试confirmation_instructions在/ rails/mailers/user_mailer/confirmation_instructions路线上看到电子邮件的预览,我收到以下错误:

undefined method `confirmation_url' for #<#<Class:0x007fa02ab808e0>:0x007fa030fb7e80>
Run Code Online (Sandbox Code Playgroud)

我的confirmation_url.html.erb模板的代码如下所示: …

ruby ruby-on-rails devise ruby-on-rails-4

35
推荐指数
4
解决办法
9798
查看次数

为什么RuboCop建议用Array.new替换.times.map?

RuboCop建议:

使用Array.new带而不是块.times.map.

在警察的文件中:

这个警察检查.times.map调用.在大多数情况下,可以使用显式数组创建来替换此类调用.

例子:

# bad
9.times.map do |i|
  i.to_s
end

# good
Array.new(9) do |i|
  i.to_s
end
Run Code Online (Sandbox Code Playgroud)

我知道它可以被替换,但我觉得9.times.map更接近英语语法,并且更容易理解代码的作用.

为什么要更换?

ruby performance rubocop

35
推荐指数
3
解决办法
3929
查看次数

Docker for Mac - mkmf.rb找不到ruby的头文件

我在Mac上更新了XCode,从那时起使用Docker时出现了docker-sync-stack start以下错误消息:

mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/include/ruby.h
Run Code Online (Sandbox Code Playgroud)

我尝试用这个安装ruby:brew install rbenv ruby-build但这并没有改变任何东西.

有谁知道我怎么解决它?

谢谢!

ruby docker

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