Tag: ruby on rails

OpenSSL :: SSL :: SSLError:SSL_connect SYSCALL返回= 5 errno = 0 state = SSLv3读取服务器hello A

下面的代码产生以下错误:OpenSSL :: SSL :: SSLError:SSL_connect SYSCALL返回= 5 errno = 0 state = SSLv3读取服务器hello A require ‘net/https’ uri = URI.parse(“https://.com”) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true http.ssl_version = ‘SSLv3’ http.get(uri.request_uri) 知道为什么吗? 我尝试了所有其他问题中提到的一切,但仍然没有运气。 Ruby 1.9.3p484(2013-11-22修订版43786)[x86_64-darwin13.3.0] OpenSSL 0.9.8y 2013年2月5日 更新我 试过以下内容: Ruby 2.0.0p353(2013-11-22修订版43784)[x86_64-darwin13.3.0] OpenSSL 1.0.1i 2014年8月6日 更新II 强制ssl_version为:TLSv1_2 仍然没有运气。 更新III 好的,这是最终的代码 – 感谢Steffen(见下面的答案): require ‘net/https’ uri = […]

如何在Rails测试中使用参数轻松解析URL?

我有一些代码将return_to URL嵌入到我想测试的重定向(如OpenID)中: def test_uses_referrer_for_return_to expected_return_to = ‘http://test.com/foo’ @request.env[‘HTTP_REFERER’] = expected_return_to get :fazbot # @response.redirected_to looks like http://service.com?…&return_to=[URI-encoded version of URL above]&… encoded_return_to = (something_here)[:return_to] assert_equal expected_return_to, URI.unencode(encoded_return_to) end 它是一个Rails ActionController::TestCase ,所以我可以访问各种辅助方法; 我找不到合适的人。 当然我可以使用URI.parse获取URL的params部分,然后将其拆分为/&|?/然后再次拆分为’=’ ,但我希望这已经为我完成了。 另外,如果我错过了URL转义或参数解析中的一些模糊规则,该怎么办? 必须在ActionPack或ActiveSupport中执行此操作,但我无法找到它。 谢谢 :)

在Ruby on Rails中,在send_file方法之后从服务器中删除该文件

我使用以下代码在Rails中发送文件。 如果File.exist?(file_path) send_file(file_path,type:’text / excel’) File.delete(FILE_PATH) 结束 在这里,我试图发送文件,并在成功发送后从服务器中删除该文件。 但我面临的问题是,删除操作是在发送执行时执行的,由于我在浏览器中没有看到任何内容。 所以在Rails中有任何方法,一旦send_file操作完成,从服务器删除文件。 任何有关这方面的帮助将受到高度赞赏。 谢谢, 阿赫亚

Rails设计:user_signed_in? 不工作

在我看来,我有这个: 但是当以用户身份登录时:我仍然可以看到链接: 帮助器为什么不工作?

为什么不/ do和{}总是等价?

可能重复: Ruby块和不带括号的参数 Ruby中这些块编码样式的区别或价值是什么? 我一直认为以下只是两种说法相同的方式: [1,2,3].collect{|i| i * 2} [1,2,3].collect do |i| i * 2 end 但是我在我的一个ERB模板中得到了一些奇怪的行为,其中两个语法似乎做了两件不同的事情。 这段代码效果很好: m)) } } %> 但是当我重写它时: m)) end end %> …我最终得到了一串连结的@menu项目。 我错过了什么吗? 这里有一些细小的语法糖吗?

Rails v3 / Ruby 1.9.2中的字符编码问题

当我从文件中读取内容时,有时会出现此错误“ UTF-8中的无效字节序列 ”。 注意 – 只有在字符串中有一些特殊字符时才会发生这种情况。 我试过没有“r:UTF-8”打开文件,但仍然得到相同的错误。 open(file, “r:UTF-8”).each_line { |line| puts line.strip(“,”) } # line.strip generates the error 文件内容: # encoding: UTF-8 290919,”SE”,”26″,”Sk‰l”,””,59.4500,17.9500,, # this errors out 290956,”CZ”,”45″,”HornÌ Bradlo”,””,49.8000,15.7500,, # this errors out 290958,”NO”,”02″,”Svaland”,””,58.4000,8.0500,, # this works 这是我从外面获得的CSV文件,我试图将其导入我的数据库,它顶部没有“#encoding:UTF-8”,但我添加了这个,因为我在某处读到它会解决这个问题,但事实并非如此。 🙁 环境: Rails v3.0.3 ruby 1.9.2p0 (2010-08-18修订版29036)[x86_64-darwin10.5.0]

错误地转义了JSON编码(Rails 3,Ruby 1.9.2)

在我的控制器中,以下工作(打印“oké”) puts obj.inspect 但这不会(呈现“ok \ u00e9”) render :json => obj 显然, to_json方法会转义unicode字符。 有没有办法防止这种情况发生?

获取fields_for和accepts_nested_attributes_for以使用belongs_to关系

我似乎无法使用Rails 2.3的新的accepts_nested_attributes_for工具在rails视图中为belongs_to关系生成嵌套表单。 我确实检查了许多可用的资源,看起来我的代码应该正常工作,但fields_for爆炸了我,我怀疑它与我如何配置嵌套模型有关。 我遇到的错误是一个常见的错误原因: ‘@account[owner]’ is not allowed as an instance variable name 以下是涉及的两个模型: class Account ‘User’, :foreign_key => ‘owner_id’ accepts_nested_attributes_for :owner has_many :users end class User < ActiveRecord::Base belongs_to :account end 也许这就是我在做’rong’的地方,因为帐户可以拥有’所有者’,可能是’用户’,但用户只有一个’帐户’,基于用户模型account_id键。 这是new.html.haml中的视图代码,它炸毁了我: – form_for :account, :url => account_path do |account| = account.text_field :name – account.fields_for :owner do |owner| = owner.text_field :name 这是新操作的控制器代码: class […]

通过与其他属性相关联来创建has_many的Rails表单?

如何为has_many :through生成表单字段has_many :through具有其他属性的关联? has_many :through关系有一个名为weight的附加列。 这是连接表的迁移文件: create_table :users_widgets do |t| t.integer :user_id t.integer :widget_id t.integer :weight t.timestamps end 模型看起来像这样: User has_many :widgets, :through => :users_widgets, :class_name => ‘Widget’, :source => :widget has_many :users_widgets accepts_nested_attributes_for :widgets # not sure if this is necessary Widget has_many :users, :through => :users_widgets, :class_name => ‘User’, :source => :user has_many […]

无法使用Ruby 1.9.3在RubyMine 4.5中进行调试

我对问题的长度表示道歉,但我想说清楚我没有犯任何愚蠢的错误! 所以,我很难使用Ruby 1.9.3在RubyMine 4.5中进行调试,我的步骤如下: 新鲜(即已删除所有以前的ruby和gem目录)安装Ruby 1.9.3,Ruby Gems,DevKit和Rails(遵循本指南 ) – 工作正常。 然后我尝试开始使用我的团队的ruby代码。 我在RubyMine中打开目录(首先记住删除.idea目录)并提示我按照要求运行bundle install (从控制台)。 这成功完成。 重启RubyMine。 然后我确保Ruby正在工作:工具> IRB控制台> #test => nil puts “test” #test => nil – Works我现在尝试调试器( SHIFT + F9 )并看到消息: The gem ruby-debug-base19x required by the debugger is currently not installed. Would you like to install it?” 我点击取消并检查我的Gemfile,唯一与调试相关的是: # Debugging gem ‘debugger’ #gem […]