登录到应用程序然后完全关闭浏览器后,我重新打开希望注销的浏览器.但是我还在登录?
我在8.2.3节中更改布局链接,除此之外,应用程序按预期运行并运行.代码也是教程中的代码.我认为这些是相关文件:
应用程序/佣工/ sessions_helper.rb
module SessionsHelper
# Logs in the given user.
def log_in(user)
session[:user_id] = user.id
end
# Returns the current logged-in user (if any).
def current_user
@current_user ||= User.find_by(id: session[:user_id])
end
# Returns true if the user is logged in, false otherwise.
def logged_in?
!current_user.nil?
end
end
Run Code Online (Sandbox Code Playgroud)
应用程序/控制器/ sessions_controller.rb
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
log_in user
redirect_to user
else
flash.now[:danger] = 'Invalid …Run Code Online (Sandbox Code Playgroud) 需要一些帮助来理解以下routes.rb文件:
Rails.application.routes.draw do
get 'help' => 'static_pages#help'
end
Run Code Online (Sandbox Code Playgroud)
从我对Ruby这一行的理解:
get 'help' => 'static_pages#help'
Run Code Online (Sandbox Code Playgroud)
是相同的:
self.get('help' => 'static_pages#help')
Run Code Online (Sandbox Code Playgroud)
那么在这种情况下的价值是self什么?
我需要获取目录和子目录中的所有文件,并且每个文件的日期都附加到文件名,如product_log_2016-11-17.txt
获取我使用的目录中存在的文件列表
all_logs = Dir["#{Rails.root}/log/product_logs/**/*.txt"]
Run Code Online (Sandbox Code Playgroud)
它返回这样的完整路径文件(我已从每个条目中删除了我的系统路径:
[
"/log/product_logs/new_2/product_log_2016-11-17.txt",
"/log/product_logs/new_2/products_log_2016-11-03.txt",
"/log/product_logs/new_1/products_log_2016-10-04.txt",
"/log/product_logs/new_1/product_log_2016-11-17.txt",
"/log/product_logs/new_1/products_log_2016-11-03.txt"
]
Run Code Online (Sandbox Code Playgroud)
但是我希望像这样按日期排序:
[
"/log/product_logs/new_2/product_log_2016-11-17.txt",
"/log/product_logs/new_1/product_log_2016-11-17.txt",
"/log/product_logs/new_2/products_log_2016-11-03.txt",
"/log/product_logs/new_1/products_log_2016-11-03.txt",
"/log/product_logs/new_1/products_log_2016-10-04.txt"
]
Run Code Online (Sandbox Code Playgroud)
我试过这样的:
all_logs.sort{|a, b|b.split("/").last.split("_").last.split(".").first <=>a.split("/").last.split("_").last.split(".").first }
Run Code Online (Sandbox Code Playgroud)
哪个有效,但似乎不是一个好的解决方案,任何人都可以让我知道什么是最好的方式来输入这种类型的列表?
我有一个字符串input = "2 + 3",我想转换为"2.0 + 3.0".我用以下两种复杂的方法实现了这个目标:
floats = input.scan(/\d+/).map(&:to_f)
operator = input.scan(/[+,\-,*,\/]/)
operator.unshift(floats.first.to_s)
.push(floats.last.to_s).join(' ')
#=> "2.0 + 3.0"
Run Code Online (Sandbox Code Playgroud)
要么:
input.split(/\s+/)
.map{|i| ['+','-','*','/'].include?(i) ? i : i.to_f }
.join(' ')
#=> "2.0 + 3.0"
Run Code Online (Sandbox Code Playgroud)
有更简单或更好的方法吗?
我合并了2个列表.
list1 = customer.links.where(ext: true).group(:link_id, :external).limit(100).order('count_id desc').count('id')
list2 = customer.links.where(ext: false).where.not(url: '/specific_link').group(:url, :ext).limit(100).order('count_id desc').count('id')
list = list1.merge(list2).sort_by{|k, v| -v}
Run Code Online (Sandbox Code Playgroud)
结果是:
[[["/path/element1", false], 7], [[4, true], 5], [["/path/element6", false], 1]]
Run Code Online (Sandbox Code Playgroud)
我想将它转换为on维哈希,如下所示:
[["/path/element1", false, 7], [4, true, 5], ["/path/element6", false, 1]]
Run Code Online (Sandbox Code Playgroud)
当我使用时flatten,阵列之间没有分离.
如何在where函数中使用变量?
我有一个带有两个字段A和B(都是整数)的Rate模型,这有效:
Rate.where('A = 1 and B = 2')
Run Code Online (Sandbox Code Playgroud)
如何传递我在params哈希中得到的变量?
x = params[:x]
y = params[:y]
Rate.where('A = x and B = y')
Run Code Online (Sandbox Code Playgroud)
这不起作用并返回错误.
为什么是
if name.eql? 'Name1' || name.eql? 'Name2'
# doSomething
end
Run Code Online (Sandbox Code Playgroud)
Ruby中不允许?在Ruby中执行此操作的好习惯是什么?
因为我是初学者Ruby开发人员.我想知道更高级的Ruby开发人员将如何解决这个问题.我在这里寻找最小的数字除以1到10之间的数字,没有任何余数.
更正式地,这被定义为两个或更多个整数的最小公倍数,在这种情况下是数字1到10.
我目前的尝试:
max_divider = 10
nums = (1..max_divider).to_a
found_count = 0
x = 0
while found_count == 0
x += 1
nums.each do |num|
if x % num == 0
found_count += 1
end
end
if found_count != max_divider
found_count = 0
end
end
p x #=> 2520
Run Code Online (Sandbox Code Playgroud) 我在Ruby工作.我需要创建一个正则表达式,它接受一个字符串,我想,且仅与开始的话返回一个数组"un"和结束"ing".我不知道该怎么做:/
def words_starting_with_un_and_ending_with_ing(text)
!!text.capitalize.scan(/\A+UN\Z+ING/)
end
Run Code Online (Sandbox Code Playgroud) 我有一系列浮动数字和一定的截止值:
myData = [1.3,1.5,1.7,1.7,16.7,18.4,19.2,19.5,19.6,20.2,20.8,58.4,60.7,
61.2,61.2,116.4,121.2,122.7,123.2,123.2,138.5,149.5,149.5]
myBin = 5.3
Run Code Online (Sandbox Code Playgroud)
我想构建一个数组哈希,以便最后一个元素和数组的第一个元素之间的减法差异小于或等于myBin(5.3)
myHash = {
'hap_1' => [1.3,1.5,1.7],
'hap_2' => [16.8, 18.4,19.2,19.5,19.6,20.2,20.8],
'hap_3' => [58.4,60.7,61.2,61.2],
'hap_4' => [116.4,121.2],
'hap_5' => [122.7,123.2,123.2],
'hap_6' => [138.5],
'hap_7' => [149.5,149.5]}
Run Code Online (Sandbox Code Playgroud)
非常感谢您的时间和有用的帮助.干杯