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 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 中的行为.任何见解?
我已经在这几天挣扎了......
当我尝试从视图中调用帮助器中的方法来执行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) 我想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) 我发现当我新建一个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) 我希望在创建之前检索图像上传维度,因为我附加了文件.我通过模型提取图像尺寸得到了这个.但我想通过自定义处理器发送.我尝试的是: 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) 在我的应用程序中,我已经成功安装了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) 我需要为字符串中的每个单词大写每个“第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个字符大写吗?
谢谢!
我希望有我的底部的链接show.html.erb是links在new不同的控制器动作.
class Sample < ActiveRecord::Base
belongs_to :song
end
class Song < ActiveRecord::Base
has_many :samples
end
Run Code Online (Sandbox Code Playgroud)
因此,在底部show采取行动songs,我要链接到new的samples.这看起来很简单,但我很难弄清楚这一点.我也想将歌曲中的id传递给表格:song_id
我只是在玩irb.我尝试了这样的语法,让我true/false
有谁能形容我为什么以及如何发生这种行为?这是任何条件类型?
对于Eg:
> !!()
=> false
> !()
=> true
> !0
=> false
> !!0
=> true
Run Code Online (Sandbox Code Playgroud)
我很感激,如果有人能形容我这种语法.
在下面的代码中,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 中的意思是什么?
我有这个字符串:
["1","2","3","4"]
Run Code Online (Sandbox Code Playgroud)
我需要把它变成这样的数组:
[1,2,3,4]
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?