如何查看给定gemset中所有gem的列表?是否可以一次使用多个gemsets或只使用一个?
我正在关注Michael Hartl的RoR教程,它涵盖了密码加密的基础知识.这是目前的用户模型:
class User < ActiveRecord::Base
attr_accessor :password
attr_accessible :name, :email,: password, :password_confirmation
email_regex = /^[A-Za-z0-9._+-]+@[A-Za-z0-9._-]+\.[A-Za-z0-9._-]+[A-Za-z]$/
#tests for valid email addresses.
validates :name, :presence => true,
:length => {:maximum => 50}
validates :email, :presence => true,
:format => {:with => email_regex},
:uniqueness => {:case_sensitive => false}
validates :password, :presence => true,
:length => {:maximum => 20, :minimum => 6},
:confirmation => true
before_save :encrypt_password
private
def encrypt_password
@encrypted_password = encrypt(password)
end
def encrypt(string)
string
end
end
Run Code Online (Sandbox Code Playgroud)
(显然这不是在进行任何加密,因为加密方法并没有真正实现,但这不是我的问题)
然后我编写了以下规范(根据教程):
require 'spec_helper' …Run Code Online (Sandbox Code Playgroud) 所以我从1and1购买了一个域名,说它是www.mysite.com,并且我正在Heroku上托管我的应用程序myapp.herokuapp.com.我有两个转发域的选项 - HTTP和Frame.HTTP转发似乎只是将我的URL重定向www.mysite.com到myapp.herokuapp.com,这不是我想要的.但我遇到Frame重定向的问题 - 如果我在我的网站上导航到各个页面(例如myapp.herokuapp.com/users),它仍会www.mysite.com在顶部说,但不是www.mysite.com/users.如何正确显示URL路径?
ActiveAdmin文档说我可以像这样覆盖实用程序导航:
ActiveAdmin.setup do |config|
config.namespace :admin do |admin|
admin.build_menu :utility_navigation do |menu|
menu.add label: "ActiveAdmin.info", url: "http://www.activeadmin.info", html_options: { target: :blank }
admin.add_logout_button_to_menu menu # can also pass priority & html_options for link_to to use
end
end
end
Run Code Online (Sandbox Code Playgroud)
它还说默认显示包括当前用户的电子邮件地址.它是如何获得当前用户的电子邮件地址的?当我尝试用我替换menu.add label值时,current_admin_user会得到一个current_admin_user未定义的错误.如何从配置文件中访问有关当前登录用户的信息?ActiveAdmin在幕后如何做到这一点?
如何确定Bash中当前是否正在使用文件描述符?例如,如果我有一个读取,写入和关闭fd 3的脚本,例如
exec 3< <(some command here)
...
cat <&3
exec 3>&-
Run Code Online (Sandbox Code Playgroud)
什么是确保我不干扰脚本运行之前可能设置的描述符的其他目的的最佳方法?我需要将整个脚本放在子shell中吗?
有人可以向我解释以下方法之间的区别吗?
it "should create a user" do
lambda do
post :create, :user => @attr
end.should change(User, :count).by(1)
end
Run Code Online (Sandbox Code Playgroud)
这就是目前的方法.这可以通过以下方法实现吗?
it "should create a user" do
post :create, :user => @attr
response.should change(User, :count).by(1)
end
Run Code Online (Sandbox Code Playgroud)
这些有效吗?或者第二个不起作用?因为我正在遵循的教程似乎尽可能使用response,但在上述情况下没有这样做.有人可以解释上述两种方法之间的区别,lambda和RSpec的响应如何工作?谢谢!
如果我的网站是www.foo.com用户输入的www.foo.com/blahblahblah话就会说这/blahblahblah是一条无效的路径(显然).但我希望它改为重定向到root_path,以便控制器可以处理URL - 页面www.foo.com应该呈现我想要拉取文本blahblahblah并用它做一些事情.我该怎么做呢?
我想创建一个用户,该用户只能管理服务付款 - 例如输入帐户的信用卡信息等.我不希望此用户访问控制台中的任何其他工具.我该怎么做呢?
我试图根据参数是否扩展给定的类来重载方法,并且遇到了一些麻烦.使用Miles Sabin的方法,我产生了以下代码:
object ExtendedGenericTypes {
trait <:!<[A, B] // Encoding for "A is not a subtype of B"
// Use ambiguity to rule out the cases we're trying to exclude
implicit def nsubAmbig1[A, B >: A]: A <:!< B = null
implicit def nsubAmbig2[A, B >: A]: A <:!< B = null
// The implicit substitutions
implicit def nsub[A, B]: A <:!< B = null
}
Run Code Online (Sandbox Code Playgroud)
而我的用例:
import ExtendedGenericTypes._
class Foo
def foobar[T](x: T)(implicit ev: T <:< Foo) …Run Code Online (Sandbox Code Playgroud) 我在Windows上使用Git Bash来完成我的大多数Rails工作,每次运行bundle exec rspec spec它都会提醒我"你必须gem install win32console在Windows上使用颜色",然后以纯黑白方式运行RSpec.然而我确实安装了win32console,当我gem list在列表上运行它时win32console (1.3.0 x86-mingw32).RSpec工作正常,但我希望它有一些颜色.我谷歌搜索了这个并找到了多个解决方案,但似乎没有一个对我有用.有人可以写一个"循序渐进"的方法来获取GTP Bash for Windows上的RSpec颜色吗?