小编AKW*_*KWF的帖子

如何恢复我的Rails 4 binstubs?

我在某个时候重新生成了binstubs.它曾经是Spring完美无缺的,在我第一次拿起Rails控制台之后,控制台会立刻出现.

现在看来Spring已经不再运行了.

当我输入:

rails console
Run Code Online (Sandbox Code Playgroud)

我明白了:

Looks like your app's ./bin/rails is a stub that was generated by Bundler.

In Rails 4, your app's bin/ directory contains executables that are versioned
like any other source code, rather than stubs that are generated on demand.

Here's how to upgrade:

  bundle config --delete bin    # Turn off Bundler's stub generator
  rake rails:update:bin         # Use the new Rails 4 executables
  git add bin                   # Add bin/ to source control

You may …
Run Code Online (Sandbox Code Playgroud)

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

4
推荐指数
1
解决办法
2913
查看次数

我怎样才能在irb中使用Nokogiri?

我在尝试着:

require 'nokogiri'
Run Code Online (Sandbox Code Playgroud)

在irb,没有成功.Nokogiri宝石已安装.从:

gem list --local
Run Code Online (Sandbox Code Playgroud)

我明白了:

nokogiri (1.4.4, 1.4.3.1)
Run Code Online (Sandbox Code Playgroud)

但当我试图在irb中"要求"时,我得到:

LoadError:没有这样的文件加载 - 来自(irb)的nokogiri:8:在`require'from(irb):8 from:0

Nokogiri'生活':

/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/nokogiri-1.4.4/lib
Run Code Online (Sandbox Code Playgroud)

在我的系统上.另外,我的GEM PATH(来自gem env)是:

/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8
Run Code Online (Sandbox Code Playgroud)

如果我一直进入nokogiri gem目录,我可以成功地"要求"它.但为什么我不能从其他地方要求它呢?我误解了有关宝石路径的一些事情.

ruby gem rubygems

3
推荐指数
1
解决办法
931
查看次数

当用户通过Devise注册时,我是否需要创建一个单独的邮件程序来复制自己?

我在Rails 3应用程序中实现了Devise,具有:registerable和:confirmmable选项.用户收到确认电子邮件,没问题.

但是,当一个人注册或确认时,我想向另一个地址发送一封额外的电子邮件.我可能会使用Observer模式.

但是,我可以使用相同的邮件程序,无论是什么/在哪里,Devise使用,或者我必须创建另一个邮件?

actionmailer devise ruby-on-rails-3

3
推荐指数
1
解决办法
323
查看次数

为什么这个ruby正则表达式不匹配这个字符串?

x = "output/file.zip"

x =~ /output\/.\../
Run Code Online (Sandbox Code Playgroud)

返回零.逃避这段时间有问题,但我无法弄清楚.

ruby regex

3
推荐指数
1
解决办法
130
查看次数

从Rails 3.0.9升级到3.1.0时,bundler ruby​​进程在Mac上占用99%的CPU

我现在已经尝试过几次了.我使用rvm和我正在使用的ruby是1.8.7.更改我的Gemfile后运行"bundle update"会使处理器挂起几乎100%的CPU.它已经运行了一个多小时.我需要做些什么吗?

bundler ruby-on-rails-3.1

3
推荐指数
1
解决办法
1078
查看次数

有没有办法使用schema.rb从Rails内部创建数据库?

在Rails 3.2.3应用程序中,我需要允许管理员创建数据库并使用schema.rb中的表填充它.

只是在schema.rb中执行代码是理想的.基本上,我正在寻找一种方法:

rake db:setup
Run Code Online (Sandbox Code Playgroud)

不使用"耙子".

我还有几件我想做的事情,例如备份数据库,我想知道是否有可以使用的Rails DSL,或者我只需要编写SQL并通过ActiveRecord :: Base运行它.connection.execute.

谢谢你尽你所能的帮助.

database activerecord ruby-on-rails ruby-on-rails-3

3
推荐指数
1
解决办法
4004
查看次数

Paperclip在更新后突然抛出一个奇怪的错误

我无法再在我的Rails应用程序中使用paperclip url呈现页面.我最近更新了我的宝石包.我正在使用Rails 3.2.8和Paperclip 3.1.4.我之前使用的是Paperclip 2.7.0.

我视图中失败的链接是:

ad.image.url(:medium)
Run Code Online (Sandbox Code Playgroud)

我的广告模型包含以下声明:

Paperclip.interpolates :ad_subdomain do |attachment, style|
  attachment.instance.brand.subdomain
end

has_attached_file :image, 
                :default_url => '/images/blank.gif',
                :styles => { :medium => ["290x230>","jpg"],
                             :thumb => ["100x100>","jpg"] },
                :storage => :file,
                :path => "/mcp/ads/:style/:ad_subdomain/:basename.:extension"
Run Code Online (Sandbox Code Playgroud)

抛出的错误是:

TypeError: wrong argument type Class (expected Module)
from /Users/me/.rvm/gems/ruby-1.9.3-p0@mcp5/gems/paperclip-3.1.4/lib/paperclip/attachment.rb:368:in `extend'
from /Users/me/.rvm/gems/ruby-1.9.3-p0@mcp5/gems/paperclip-3.1.4/lib/paperclip/attachment.rb:368:in `initialize_storage'
from /Users/me/.rvm/gems/ruby-1.9.3-p0@mcp5/gems/paperclip-3.1.4/lib/paperclip/attachment.rb:80:in `initialize'
from /Users/me/.rvm/gems/ruby-1.9.3-p0@mcp5/gems/paperclip-3.1.4/lib/paperclip/instance_methods.rb:5:in `new'
from /Users/me/.rvm/gems/ruby-1.9.3-p0@mcp5/gems/paperclip-3.1.4/lib/paperclip/instance_methods.rb:5:in `attachment_for'
from /Users/me/.rvm/gems/ruby-1.9.3-p0@mcp5/gems/paperclip-3.1.4/lib/paperclip.rb:191:in `block in has_attached_file'
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails paperclip ruby-on-rails-3.2

3
推荐指数
1
解决办法
870
查看次数

Capybara断言在Poltergeist下失败了

我有以下规格:

# MUST BE TESTED WITH JAVASCRIPT. As you can see before, it is allowing
# the Log Out link. On a real page, that element is hidden.
it "logs out a user" do
  user = login_user
  click_link user.email
  click_link "Log Out"
  assert page.has_content?('Logged out')
  assert page.has_content?('Company Profile')
end
Run Code Online (Sandbox Code Playgroud)

我的login_user方法在我的spec_helper.rb文件中,如下所示:

def login_user(admin = false)
  user = FactoryGirl.create(:user, :admin => admin)
  visit login_path
  fill_in 'Email', :with => user.email
  fill_in 'Password', :with => user.password
  click_button 'Go'
  assert page.has_content?('Logged …
Run Code Online (Sandbox Code Playgroud)

testing rspec ruby-on-rails capybara poltergeist

3
推荐指数
1
解决办法
1770
查看次数

如何使用Net :: Http下载包含UTF-8字符的文件?

我有一个应用程序,用户可以上传保存到S3的基于文本的文件(xml,csv,txt).其中一些文件非常大.需要对这些文件中的数据执行各种操作,因此不是从S3中读取它们,而是偶尔将其超时我在本地下载文件,然后将操作放在上面.

这是我用来从S3下载文件的代码.Upload是我用来存储此信息的AR模型的名称.此方法是Upload模型上的实例方法:

def download
  basename = File.basename(self.text_file_name.path)
  filename = Rails.root.join(basename)
  host = MyFitment::Utility.get_host_without_www(self.text_file_name.url)
  Net::HTTP.start(host) do |http|
    f = open(filename)
    begin
      http.request_get(self.text_file_name.url) do |resp|
        resp.read_body do |segment|
          f.write(segment) # Fails when non-ASCII 8-bit characters are included.
        end
      end
    ensure
      f.close()
    end
  end
  filename

end
Run Code Online (Sandbox Code Playgroud)

所以你看到负载失败的上面一行.此代码以某种方式认为所有下载的文件都以ASCII 8位编码.我怎么能够:

1)检查远程文件的编码,例如2)下载并成功写入.

这是现在特定文件发生的错误:

Encoding::UndefinedConversionError: "\x95" from ASCII-8BIT to UTF-8
from /Users/me/code/myapp/app/models/upload.rb:47:in `write'
Run Code Online (Sandbox Code Playgroud)

感谢您提供的任何帮助!

ruby encoding amazon-s3 character-encoding net-http

3
推荐指数
1
解决办法
789
查看次数

当对象可能为零时,如何尝试在Ruby中迭代Hash?

我发现自己不得不一直这样做,当我匆忙时,我把它包装成条件:

if !myhash.blank?
  hash.each do |k,v|
    do_something
  end
end
Run Code Online (Sandbox Code Playgroud)

要么:

myhash.map{|k,v| do_something} unless myhash.blank?
Run Code Online (Sandbox Code Playgroud)

必须有更清洁的东西.

ruby

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