小编Cas*_*per的帖子

为什么Mail块看不到我的变量?

我是Ruby的新手,想知道为什么我在这种情况下使用简单的Sinatra应用程序中的'mail'gem获得错误:

post "/email/send" do

  @recipient = params[:email]

  Mail.deliver do 
    to @recipient # throws error as this is undefined
    from 'server@domain.com'
    subject 'testing sendmail'
    body 'testing sendmail'
  end

  erb :email_sent

end
Run Code Online (Sandbox Code Playgroud)

然而,这工作正常:

post "/email/send" do

  Mail.deliver do 
    to 'me@domain.com'
    from 'server@domain.com'
    subject 'testing sendmail'
    body 'testing sendmail'
  end

  erb :email_sent

end
Run Code Online (Sandbox Code Playgroud)

我怀疑这与块范围和我对它的误解有关.

ruby sinatra

8
推荐指数
2
解决办法
867
查看次数

“无法提取 git 版本” CocoaPods 使用 Mac

我需要帮助。我正在尝试将 CocoaPods 安装到我的 mac,当我进入该过程的“pod setup”部分时收到以下错误。有任何想法吗?

Nathans-MacBook-Air:~ nathannoel$ pod setup --verbose

/Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/command.rb:118:in 
`git_version': Failed to extract git version from `git --version`
("xcrun: error: invalid active developer path
  (/Applications/Xcode.app/Contents/Developer), missing xcrun at: 
   /Applications/Xcode.app/Contents/Developer/usr/bin/xcrun\n") (RuntimeError)
  from /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/command.rb:130:in 
 `verify_minimum_git_version!'
  from /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/lib/cocoapods/command.rb:49:in `run'
  from /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.5.3/bin/pod:55:in `<top (required)>'
  from /usr/local/bin/pod:22:in `load'
  from /usr/local/bin/pod:22:in `<main>'

Nathans-MacBook-Air:~ nathannoel$
Run Code Online (Sandbox Code Playgroud)

ruby xcode cocoapods swift

6
推荐指数
0
解决办法
1万
查看次数

在mac osX上安装libyaml for ruby​​(Lion)

我收到此错误消息:

"It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby."
Run Code Online (Sandbox Code Playgroud)

我试过输入这个命令: rvm pkg install libyaml

我收到此错误消息:

"Fetching yaml-0.1.4.tar.gz to /Users/luke/.rvm/archives
Extracting yaml-0.1.4.tar.gz to /Users/luke/.rvm/src
Error running 'tar xmzf /Users/luke/.rvm/archives/yaml-0.1.4.tar.gz -C
/Users/luke/.rvm/src ', 
   please read /Users/luke/.rvm/log/yaml/extract.log
Configuring yaml in /Users/luke/.rvm/src/yaml-0.1.4.
Error running ' ./configure --prefix="/Users/luke/.rvm/usr"  ', 
   please read /Users/luke/.rvm/log/yaml/configure.log
Compiling yaml in /Users/luke/.rvm/src/yaml-0.1.4.
Error running 'make ', please read /Users/luke/.rvm/log/yaml/make.log

Database file /Users/luke/.rvm/config/packages does not exist."
Run Code Online (Sandbox Code Playgroud)

有谁知道我做错了什么?谢谢!

ruby macos psych

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

heroku工具带的问题

我是Ruby和Rails项目的绝对新手,所以如果这是一个愚蠢的问题,我很抱歉.

我已经安装了heroku工具带wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh.我也试过了gem install heroku.但是当我键入:

MY_USER@home-PC:~$ heroku version
<internal:gem_prelude>:1:in `require': cannot load such file -- rubygems.rb (LoadError)
    from <internal:gem_prelude>:1:in `<compiled>'
Run Code Online (Sandbox Code Playgroud)

我已经检查了谷歌,人们建议宝石和当前的红宝石是不同的版本,所以我检查了它们,它们似乎是一样的:

MY_USER@home-PC:~$ which ruby
/home/MY_USER/.rvm/rubies/ruby-1.9.3-p327/bin/ruby

MY_USER@home-PC:~$ gem env | grep 'RUBY EXECUTABLE'
  - RUBY EXECUTABLE: /home/MY_USER/.rvm/rubies/ruby-1.9.3-p327/bin/ruby
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做,所以请帮忙.

对不起这个可能很愚蠢的问题,提前谢谢.

编辑:忘了说我正在运行Ubuntu 12.10.

ruby gem install heroku rvm

5
推荐指数
1
解决办法
2369
查看次数

Python-没有名为pygst的模块

我在带有Python 2.7.13的Ubuntu 14.04上使用virtualenv,并且试图开始import pygst工作(我是一个完整的Python新手)。

我下载了:https :
//gstreamer.freedesktop.org/src/gst-python/gst-python-1.12.1.tar.xz

编译并安装有:
./configure --prefix=$VIRTUAL_ENV && make install

但是我仍然不能import pygst

>>> import pygst
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named pygst
Run Code Online (Sandbox Code Playgroud)

也没有匹配pygst的pip包。我肯定错过了一些非常简单的东西,但我无法弄清楚。

这也无济于事,因为它仅影响系统Python的安装,而不影响virtualenv:

sudo apt-get install python-gst0.10 gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly
Run Code Online (Sandbox Code Playgroud)

如何使用virtualenv安装pygst?

python ubuntu gstreamer python-gstreamer

5
推荐指数
1
解决办法
4377
查看次数

带有模块的 Ruby 类命名空间:为什么我会得到带有双冒号的 NameError 而不是模块块?

我正在处理许多预先存在的文件、类和模块,并试图为框架的不同组件提供更好的命名空间。我一直使用模块作为命名空间的一种方式,主要是因为这似乎是标准约定(并且能够“包含”框架的不同部分可能很有用)。

问题是在全局命名空间下有大量应该存在于模块下的类。例如,假设有一个简单定义为的类:

class FirstClass
  def meth
    puts "HELLO"
  end
end
Run Code Online (Sandbox Code Playgroud)

但现在我想在一个模块中拥有这个类:

使用双冒号:

module Foo; end

class Foo::FirstClass
  def meth
    puts 'HELLO'
  end
end
Run Code Online (Sandbox Code Playgroud)

使用模块块:

module Foo
  class FirstClass
    def meth
      puts 'HELLO'
    end
  end
Run Code Online (Sandbox Code Playgroud)

使用双冒号更简洁,也更容易实现,因为我正在更改许多类定义。这两种方式都有效,我认为它们实际上是一回事,但显然它们不是。与模块块相比,双冒号方法似乎导致每个类中的命名空间不同。例如,在“Foo”下面有两个类:

使用模块块:

module Foo
  class FirstClass
    def meth
      puts 'HELLO'
    end
  end

  class SecondClass
    def meth
      FirstClass.new.meth
    end
  end
end

Foo::SecondClass.new.meth
Run Code Online (Sandbox Code Playgroud)

使用双冒号:

module Foo; end

class Foo::FirstClass
  def meth
    puts 'HELLO'
  end
end

class Foo::SecondClass
  def meth
    FirstClass.new.meth
  end
end

Foo::SecondClass.new.meth

Run Code Online (Sandbox Code Playgroud)

该代码在使用模块块时有效,但不适用于双冒号。使用双冒号,会引发 NameError,因为它解析FirstClass …

ruby

5
推荐指数
1
解决办法
194
查看次数

使用LOAD DATA INFILE引用问题导入CSV

我正在尝试将我从excel导出的CSV文件加载到我的数据库中,无论我尝试什么,我似乎都无法正确格式化.

这是SQL:

LOAD DATA INFILE 'path/file.csv'
INTO TABLE tbl_name 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
(column1, column2, column3); 
Run Code Online (Sandbox Code Playgroud)

这很好但是当一行(第3列)的末尾以引号结束时我遇到了麻烦.例如:

实际价值: These are "quotes"

CSV中的值: "These are ""quotes"""

会发生的是,我会在数据库中获得该值的额外报价以及任何其他行,直到它到达CSV中的另一个报价.关于如何解决这个问题的任何想法?

mysql csv excel

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

pack()和unpack()如何在Ruby中工作

在Ruby中为什么我们需要数组Packing?如何directive帮助做这样的包装?

我在我的控制台中运行了一些代码,以查看Array包装中的指令是什么以及如何.但输出与每个指令完全相同.然后在核心他们如何不同?

irb(main):003:0> n = [ 65, 66, 67 ]
=> [65, 66, 67]
irb(main):004:0> n.pack("ccc")
=> "ABC"
irb(main):005:0> n.pack("C")
=> "A"
irb(main):006:0> n.pack("CCC")
=> "ABC"
irb(main):007:0> n.pack("qqq")
=> "A\x00\x00\x00\x00\x00\x00\x00B\x00\x00\x00\x00\x00\x00\x00C\x00\x00\x00\x00\
x00\x00\x00"
irb(main):008:0> n.pack("QQQ")
=> "A\x00\x00\x00\x00\x00\x00\x00B\x00\x00\x00\x00\x00\x00\x00C\x00\x00\x00\x00\
x00\x00\x00"
irb(main):009:0> n.pack("SSS")
=> "A\x00B\x00C\x00"
irb(main):010:0> n.pack("sss")
=> "A\x00B\x00C\x00"
irb(main):011:0>
Run Code Online (Sandbox Code Playgroud)

现在我可以从控制台看到它n.pack("SSS") and n.pack("sss");n.pack("ccc") and n.pack("CCC"); n.pack("qqq") and n.pack("QQQ")提供相同的输出.然后差异在哪里?

文档也没有涵盖每个指令在现实生活中如何工作的一些例子.我也对下面的指令感到困惑,因为我不知道如何测试它们?任何带有它们的小代码对我都有帮助:

  • S_, S!
  • S> L> Q>
  • S!< I!<
  • L_, L!

ruby unpack binary-data pack ruby-1.9.3

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

如何在docker-compose run中使用Docker访问Sinatra端口

我不确定如何正确将4567Docker 的Sinatra端口正确地公开回主机。在本地运行该应用程序没有问题。

以下存储库显示了问题的情况https://gitlab.com/davidhooey/sinatra-docker

通过搜索,我注意到以下问题:在Docker容器中运行Ruby Sinatra无法连接(通过Mac主机)或无法找到命令(在不同情况下)?--host 0.0.0.0传递到rackup命令中。但是,我正在使用编程方式启动该网站Site.run!

文件树

.
??? Dockerfile
??? Gemfile
??? Gemfile.lock
??? README.md
??? app.rb
??? docker-compose.yml
??? site.rb
??? views
    ??? index.erb
Run Code Online (Sandbox Code Playgroud)

app.rb

module App
    class App
        def initialize(args)
            # Do some stuff before launching site.
            # Launch site
            Site.run!
        end
    end
end

App::App.new(ARGV)
Run Code Online (Sandbox Code Playgroud)

site.rb:bind西纳特拉设置为0.0.0.0

site.rb

require 'sinatra'

module App
    class Site < Sinatra::Base
        set :bind, '0.0.0.0'
        set :static, …
Run Code Online (Sandbox Code Playgroud)

ruby sinatra docker docker-compose

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

Ruby on Rails.dispatch.fcgi.dependencies.rb:251:在`require':无法加载这样的文件--fcgi(LoadError)

app = redmine-2.0.1
ruby = ruby​​ 1.9.3p194(2012-04-20 revision 35410)[x86_64-linux]

[root@by1016690 public]# ./dispatch.fcgi
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `block in require': iconv will be deprecated in the future, use String#encode instead.
/usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `require': cannot load such file -- fcgi (LoadError)
        from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `block in require'
        from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:236:in `load_dependency'
        from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.3/lib/active_support/dependencies.rb:251:in `require'
        from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.4.1/lib/rack/handler/fastcgi.rb:1:in `<top (required)>'
        from ./dispatch.fcgi:19:in `<main>'
Run Code Online (Sandbox Code Playgroud)

ruby fastcgi mod-fastcgi ruby-on-rails-3

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