小编Ark*_*kan的帖子

撤消github上的git push

我犯了一个错误....我不知道如何解决它.

我解释了这个问题.

我正在研究我的项目,我做了第一次提交.在这个提交中添加了2个无用的大文件......我不想要这些文件,所以我做了一个

git rm file
Run Code Online (Sandbox Code Playgroud)

然后再次提交.而我是愚蠢的,因为我推到了github hehehe :).

我想你已经发现了问题......

如何从我的本地和github存储库中删除这些文件(尤其是github ...)

我在互联网上找到了一些帮助,但我不想破坏我的所有存储库.

谢谢

git github

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

Rails3和安全nl2br!

我有一个系统供用户发表评论.

评论被抓到一个文本区域.

我的问题是用br标签格式化注释以替换\n

事实上,我可以做那样的事情

s.gsub(/\n/, '<br />')

但是包含在rails中的xss保护逃脱了br标签.

所以我能做到这一点

s.gsub(/\n/, '<br />').html_safe

但是,所有标签都被接受甚至脚本....导致一个很大的安全问题

所以我的问题是:如何安全地使用br格式化文本?

谢谢

编辑:目前,我已经添加了这个

  def sanitaze
    self.gsub(/(<.*?>)/, '')
  end

  def nl2br
    self.sanitaze.gsub(/\n/, '<br />').html_safe
  end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-3

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

带有Resque的Heroku上的Postgres错误

我不知道Postgres能够理解这个消息.

PG::Error: SSL error: decryption failed or bad record mac : SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum WHERE a.attrelid = '"users"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum
Run Code Online (Sandbox Code Playgroud)

这是来自resque后端的callstack

/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.2/lib/active_record/connection_adapters/postgresql_adapter.rb:1139:in `async_exec'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.2/lib/active_record/connection_adapters/postgresql_adapter.rb:1139:in `exec_no_cache'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.2/lib/active_record/connection_adapters/postgresql_adapter.rb:663:in `block in exec_query'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract_adapter.rb:280:in `block in log'
/app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.2/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract_adapter.rb:275:in `log'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.2/lib/active_record/connection_adapters/postgresql_adapter.rb:662:in `exec_query'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.2/lib/active_record/connection_adapters/postgresql_adapter.rb:1264:in `column_definitions'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.2/lib/active_record/connection_adapters/postgresql_adapter.rb:858:in `columns'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.2/lib/active_record/connection_adapters/schema_cache.rb:12:in `block in initialize'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.2/lib/active_record/model_schema.rb:228:in `yield'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.2/lib/active_record/model_schema.rb:228:in `default'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.2/lib/active_record/model_schema.rb:228:in `columns'
/app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.2.2/lib/active_record/model_schema.rb:237:in …
Run Code Online (Sandbox Code Playgroud)

postgresql ruby-on-rails resque

14
推荐指数
2
解决办法
6488
查看次数

ruby-on-rails3,并使用activereccord3选择distinct

一些方法已被Rails3弃用.特别是以下电话就是这种情况!

Error.find(:all, :select => 'DISTINCT type')
Run Code Online (Sandbox Code Playgroud)

有人有想法,如何将此调用转换为ActiveRecord3有效语句?

我在网上什么都没发现......

谢谢

activerecord ruby-on-rails-3

13
推荐指数
1
解决办法
7328
查看次数

Rails3和Paperclip

我已将我的应用程序从rails 2.3迁移到rails3,我的回形针有问题.我看到在paperclip git上有一个rails3的分支.

所以我在Gemfile中添加了"gem'paperclip',:git =>'git://github.com/thoughtbot/paperclip.git',: branch =>'rails3'"并启动命令bundle install.

安装回形针后,上传工作正常,但不是样式.我看到了修复它的黑客攻击.

# in lib/paperclip/attachment.rb at line 293
def callback which #:nodoc:
  # replace this line...
  # instance.run_callbacks(which, @queued_for_write){|result,obj| result == false }
  # with this:
  instance.run_callbacks(which, @queued_for_write)
end
Run Code Online (Sandbox Code Playgroud)

之后风格还可以,但我无法激活处理器.我的代码是:

has_attached_file                 :image,
                                  :default_url => "/images/nopicture.jpg",
                                  :styles => { :large   => "800x600>",
                                               :cropped => Proc.new { |instance| "#{instance.width}x#{instance.height}>" },
                                                :crop    => "300x300>" },
                                   :processors => [:cropper]
Run Code Online (Sandbox Code Playgroud)

我的处理器位于RAILS_APP/lib/paperclip_processors/cropper.rb中,包含:

module Paperclip
  class Cropper < Thumbnail
    def transformation_command
      if crop_command  and !skip_crop?
        crop_command + super.sub(/ -crop \S+/, …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails paperclip ruby-on-rails-plugins

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

Ruby和为Float实例修改self

我想改变float实例的self值.

我有以下方法:

class Float
  def round_by(precision)
    (self * 10 ** precision).round.to_f / 10 ** precision
  end
end
Run Code Online (Sandbox Code Playgroud)

而且我想添加round_by!将修改自我值的方法.

class Float
  def round_by!(precision)
    self = self.round_by(precision)
  end
end
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误,说我无法改变自我的价值.

任何的想法 ?

ruby

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

在Chrome上从S3下载PDF的问题

我正面临使用Chrome从Amazon S3下载PDF文件的问题.

当我单击链接时,我的控制器将请求重定向到S3上的文件URL.

它与Firefox完美配合,但Chrome没有任何反应.

然而,如果我执行右键单击 - > 保存位置,将下载文件...

甚至将S3 URL复制粘贴到Chrome中也会导致空白屏幕...

以下是curl返回的一些信息:

Date: Wed, 01 Feb 2012 15:34:09 GMT
Last-Modified: Wed, 01 Feb 2012 04:45:24 GMT
Accept-Ranges: bytes
Content-Type: application/x-pdf
Content-Length: 50024
Server: AmazonS3
Run Code Online (Sandbox Code Playgroud)

我的猜测与内容类型的问题有关......但我尝试过的都没有用.

content-type google-chrome download amazon-s3

6
推荐指数
2
解决办法
6673
查看次数

Rspec,CanCan和Devise

我正在开始一个项目,我希望能够测试一切:)

我在CanCan和设计方面遇到了一些问题.

例如,我有一个控制器联系人.每个人都可以查看,每个人(除了被禁止的人)都可以建立联系.

#app/controllers/contacts_controller.rb
class ContactsController < ApplicationController
  load_and_authorize_resource

  def index
    @contact = Contact.new
  end

  def create
    @contact = Contact.new(params[:contact])
    if @contact.save
      respond_to do |f|
        f.html { redirect_to root_path, :notice => 'Thanks'}
      end
    else
      respond_to do |f|
        f.html { render :action => :index }
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

代码工作,但我不知道如何测试控制器.我试过这个.如果我评论load_and_authorize_resource行,这是有效的.

#spec/controllers/contacts_controller_spec.rb
require 'spec_helper'

describe ContactsController do

  def mock_contact(stubs={})
    (@mock_ak_config ||= mock_model(Contact).as_null_object).tap do |contact|
      contact.stub(stubs) unless stubs.empty?
    end
  end

  before (:each) do
    #    @user = Factory.create(:user)
    #    sign_in @user
    #    @ability = …
Run Code Online (Sandbox Code Playgroud)

rspec devise cancan ruby-on-rails-3

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

net-ssh和远程环境

我想使用net-ssh库在我的服务器上执行一些远程命令.

我有以下示例:

Net::SSH::start(host, user, options = {:keys => '~/.ssh/id_rsa'}) do |ssh|
  puts ssh.exec!("echo $PATH")
  ssh.loop
end
Run Code Online (Sandbox Code Playgroud)

结果是:/ usr/local/sbin:/ usr/local/bin:/ usr/sbin:/ usr/bin:/ sbin:/ bin:/ usr/games

我的问题是我没有应该加载我的PATH.

我还应该有一些RVM路径,以及定义到我的.zshrc中的自定义路径.

我怎么能改变这种行为让net-ssh使用我的.zshrc加载我的默认环境?

解:

puts ssh.exec!("source ~/.zshrc; echo $PATH")
Run Code Online (Sandbox Code Playgroud)

ruby net-ssh

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

openssl与ubuntu和ruby的问题

我有一台安装了RVM的服务器.

Nginx配置了Passenger来处理ruby 1.9.2和Rails 3.

我愿意用ruby 1.8.7安装rails 2应用程序.

我安装了ruby 1.8.7并通过转到ruby 1.8.7源代码并编译和安装.so来安装openssl.

如果我启动irb并尝试要求'openssl'响应,如果"true"

[root@server:/home/redmine/www/redmine-1.0.4/]#irb              
irb(main):001:0> require 'openssl'
=> true
irb(main):002:0> 
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试启动例如rake gems:install,这是响应.

rake gems:install
(in /home/webapps/redmine-1.0.4)
rake aborted!
no such file to load -- openssl

(See full trace by running task with --trace)
zsh: exit 1     rake gems:install
Run Code Online (Sandbox Code Playgroud)

有人有想法吗?

谢谢 !

ruby rake openssl ruby-on-rails

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