小编Gag*_*ami的帖子

rails应用程序中的Cookie溢出?

UsersController中的ActionDispatch :: Cookies :: CookieOverflow #create

我尝试打开页面时出现此错误.我不知道如何调试此错误.你对这个问题有什么建议吗?

def create
  @user = User.new(params[:user])
  sign_in @user

  if @user.save
    @user.folders.create(:folder_name=>"Default Folder", :user_id=>@user.id)
    flash[:success] = "Welcome to Bunch<it>! "
    redirect_to @user
  else
    @title = "Sign up"
    render 'new'
  end
end


def sign_in(user)
  cookies.permanent.signed[:remember_token] = [user.id, user.salt]
  session[:current_user] = user
  current_user = user
end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails

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

Ruby - fork,exec,detach ....我们这里有竞争条件吗?

简单的例子,它不适用于我的平台(Ruby 2.2,Cygwin):

#!/usr/bin/ruby
backtt = fork { exec('mintty','/usr/bin/zsh','-i') }
Process.detach(backtt)
exit
Run Code Online (Sandbox Code Playgroud)

这个小程序(从shell启动时)应该跨越一个终端窗口(mintty),然后让我回到shell提示符.

然而,虽然它创建了薄荷窗口,但之后我没有shell提示符,并且我无法在调用shell中键入任何内容.

但是当我在分离之前引入一个小延迟时,要么使用'sleep',要么在stdout上打印一些内容,它会按预期工作:

#!/usr/bin/ruby
backtt = fork { exec('mintty','/usr/bin/zsh','-i') }
sleep 1
Process.detach(backtt)
exit
Run Code Online (Sandbox Code Playgroud)

为什么这有必要?

顺便说一下,我很清楚我可以(从外壳)做一个

mintty /usr/bin/zsh -i &
Run Code Online (Sandbox Code Playgroud)

直接,或者我可以...... &从Ruby内部使用system(),但这不是重点.我特别感兴趣的fork/exec/detach是Ruby 中的行为.任何见解?

ruby cygwin

13
推荐指数
2
解决办法
874
查看次数

Ruby on rails - 无法加载这样的文件--net/ssh

我已经在这几天挣扎了......

当我尝试从视图中调用帮助器中的方法来执行ssh时,它会抛出该错误.

"加载以下文件时发生此错误:net/ssh"

但是当我将代码复制到test.rb文件中并从提示符执行时,ruby test.rb它会完美地连接.

可能是什么问题呢 ?我尝试了另一台计算机和相同的结果.

非常感谢,这就像我完成项目之前的最后一步!

问候,

application_helper.rb:

module ApplicationHelper
  def title(value)
    unless value.nil?
      @title = "#{value} | Eucc"      
    end
  end
  def execute
    require 'rubygems'
    require 'net/ssh'
    @hostname = "smtlmon02"
    @username = "gcaille"
    @password = "qaz1234"
    @cmd = "ls -al"
    @cmd2 = "sudo su - -c 'ls;date'"

    ssh = Net::SSH.start(@hostname, @username, :password => @password)
    res = ssh.exec!(@cmd)
    res2 = ssh.exec!(@cmd2)

    ssh.close
    File.open("output.txt", 'w') {|file| file.write(res2)}
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails net-ssh

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

如何使用prawn gem将Base64字符串转换为pdf文件

我想pdf从DB记录生成文件.将其编码为Base64字符串并将其存储到DB.哪个工作正常.现在我想要反向操作,如何解码Base64字符串并pdf再次生成文件?

这是我到目前为止所尝试的.

def data_pdf_base64
  begin
    # Create Prawn Object
    my_pdf = Prawn::Document.new
    # write text to pdf
    my_pdf.text("Hello Gagan, How are you?")
    # Save at tmp folder as pdf file
    my_pdf.render_file("#{Rails.root}/tmp/pdf/gagan.pdf")
    # Read pdf file and encode to Base64
    encoded_string = Base64.encode64(File.open("#{Rails.root}/tmp/pdf/gagan.pdf"){|i| i.read})
    # Delete generated pdf file from tmp folder
    File.delete("#{Rails.root}/tmp/pdf/gagan.pdf") if File.exist?("#{Rails.root}/tmp/pdf/gagan.pdf")
    # Now converting Base64 to pdf again
    pdf = Prawn::Document.new
    # I have used ttf font because it …
Run Code Online (Sandbox Code Playgroud)

ruby pdf ruby-on-rails prawn

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

为什么新的哈希有七个对象比六个长度哈希慢得多?

我发现当我新建一个Hash时,有七个对象比六个长度哈希慢得多.我知道哈希的长度会影响性能.但我不知道为什么七是一个特殊的.

这是benchmark(Ruby 2.2.3)的代码:

require 'benchmark/ips'

Benchmark.ips do |x|
  x.report(5) { { a: 0, b: 1, c: 2, d: 3, e: 4 } }
  x.report(6) { { a: 0, b: 1, c: 2, d: 3, e: 4, f: 5 } }
  x.report(7) { { a: 0, b: 1, c: 2, d: 3, e: 4, f: 5, g: 6 } }
  x.report(8) { { a: 0, b: 1, c: 2, d: 3, e: 4, f: 5, g: 6, h: 7 …
Run Code Online (Sandbox Code Playgroud)

ruby hash

7
推荐指数
1
解决办法
60
查看次数

如何创建自定义回形针处理器以检索图像尺寸Rails 4

我希望在创建之前检索图像上传维度,因为我附加了文件.我通过模型提取图像尺寸得到了这个.但我想通过自定义处理器发送.我尝试的是: Player.rb

class Player < ActiveRecord::Base
  has_attached_file :avatar, processors: [:custom], :style => {:original => {}}
....
end
Run Code Online (Sandbox Code Playgroud)

/lib/paperclip_processors/custom.rb

module Paperclip
  class Custom < Processor
    def initialize file, options = {}, attachment = nil
      super
      @file           = file
      @attachment     = attachment
      @current_format = File.extname(@file.path) 
      @format         = options[:format]
      @basename       = File.basename(@file.path, @current_format)
    end

    def make
      temp_file = Tempfile.new([@basename, @format])
      #geometry = Paperclip::Geometry.from_file(temp_file)
      temp_file.binmode

      if @is_polarized
        run_string =  "convert #{fromfile} -thumbnail 300x400  -bordercolor white -background white  +polaroid  #{tofile(temp_file)}"    
        Paperclip.run(run_string)
      end

      temp_file …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails processor dimensions paperclip

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

将活动管理员登录重定向到设计登录

在我的应用程序中,我已经成功安装了Devise,并且效果很好。然后,我第一次安装了Active Admin for Admin面板并设置了路径。现在,当我尝试登录Active Admin时,localhost:3000/admin/login它会将我重定向到Devise的登录页面。我知道可能有愚蠢的错误,但不知道如何解决此问题?

app / config / initializers / active_admin.rb

ActiveAdmin.setup do |config|  #I have removed comments
 config.site_title = "Shopaholic"
 config.authentication_method = :authenticate_admin_user!
 config.current_user_method = :current_admin_user
 config.logout_link_path = :destroy_admin_user_session_path
 config.batch_actions = true
end
Run Code Online (Sandbox Code Playgroud)

app / config / initializers / devise.rb

Devise.setup do |config|
  config.secret_key = '28c01a5ccf820bb594d2b6421becfa6487df79dad52a57d49cf61f802ea00c7364215f43cdf87463503e658da69e182f8c35d668577f975fea2bdee736a5d20a'
  config.mailer_sender = 'please-change-me-at-config-initializers-devise@example.com'
  require 'devise/orm/active_record'
  config.authentication_keys = [ :email ]
  config.case_insensitive_keys = [ :email ]
  config.strip_whitespace_keys = [ :email ]
  config.skip_session_storage = [:http_auth]
  config.stretches = Rails.env.test? ? …
Run Code Online (Sandbox Code Playgroud)

redirect ruby-on-rails devise ruby-on-rails-3 activeadmin

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

在Ruby中将每个单词的每个n个字符大写

我需要为字符串中的每个单词大写每个“第n个”字符(在此示例中,第4个字符的倍数,因此字符4、8、12等)。

我想出了以下代码(我知道不是很优雅!),但是它仅适用于which length < 8

'capitalize every fourth character in this string'.split(' ').map do |word|
  word.split('').map.with_index do |l,idx|
  idx % 3 == 0 && idx > 0 ? word[idx].upcase : l 
  end 
  .join('')
end 
.flatten.join(' ')
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何将长度> 8的单词中的第4个字符大写吗?

谢谢!

ruby string uppercase

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

在另一个控制器中link_to'new'动作?

我希望有我的底部的链接show.html.erblinksnew不同的控制器动作.

class Sample < ActiveRecord::Base
    belongs_to :song
end

class Song < ActiveRecord::Base
    has_many :samples
end
Run Code Online (Sandbox Code Playgroud)

因此,在底部show采取行动songs,我要链接到newsamples.这看起来很简单,但我很难弄清楚这一点.我也想将歌曲中的id传递给表格:song_id

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

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

如何在rails中按国家/地区代码获取ISO货币代码?

在我的Rails应用程序我想用country-code,currency-code,ISO locale code从API获取一些数据.当用户从任何地方访问我的网站时,如何动态获取此信息?

我已经使用了地理编码器宝石,所以request.location我将得到位置的信息并使用我可以得到的这个宝石country-code.现在我没有得到如何获得剩余的信息,如currency-code&ISO locale code?? 有谁可以帮助我或指导我?

我看过这个钱宝石,但不确定它会提供给我所有这些信息.

提前致谢 :)

ruby locale currency ruby-on-rails country-codes

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

这是红宝石中的任何条件类型吗?!!(),!(),!0,!! 0

我只是在玩irb.我尝试了这样的语法,让我true/false

有谁能形容我为什么以及如何发生这种行为?这是任何条件类型?

对于Eg:

 > !!()
 => false 
 > !()
 => true 
 > !0
 => false 
 > !!0
 => true 
Run Code Online (Sandbox Code Playgroud)

我很感激,如果有人能形容我这种语法.

ruby irb

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

为什么我不能使用| a,b | 而不是|(a,b)| 在arr.map {|(a,b)|中 !b.nil??a + b:a}?

在下面的代码中,arr意味着是一个二维数组,例如[[1,2],[4,5]].它计算子数组元素的总和.子数组只能有一个元素,在这种情况下,sum只是一个元素.

def compute(arr)
  return nil unless arr
  arr.map { |(a, b)| !b.nil? ? a + b : a }
end
Run Code Online (Sandbox Code Playgroud)

为什么代码必须|(a, b)|代替|a,b|(a,b)Ruby 中的意思是什么?

ruby

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

将数组元素从字符串转换为整数

我有这个字符串:

["1","2","3","4"] 
Run Code Online (Sandbox Code Playgroud)

我需要把它变成这样的数组:

[1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

ruby

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