我有我的rails应用程序,我遇到了一个设计的主要问题.我有一个控制器:
class Users::SessionsController < Devise::SessionsController
prepend_before_filter :require_no_authentication, :only => [ :new, :create ]
include Devise::Controllers::InternalHelpers
def new
clean_up_passwords(build_resource)
respond_to do |format|
format.html { render :layout => "sessions" }
format.mobile
end
end
# POST /resource/sign_in
def create
resource = User.find_by_email(params[:user][:email])
resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new")
set_flash_message :notice, :signed_in
sign_in_and_redirect(resource_name, resource)
end
end
Run Code Online (Sandbox Code Playgroud)
问题是它永远不会记录用户,它总是停在这一行
resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new")
Run Code Online (Sandbox Code Playgroud)
我甚至在实际的宝石文件中放了大量的记录器,看看我是否可以看到任何东西但没有任何东西,我真的不知道如何解决这个问题.如果我注释掉这一行,那么用户就会登录,但如果电子邮件不在数据库中并且适用于任何密码(这绝对不是正确的解决方案),则会失败
我该如何解决?
UPDATE
这有效,但似乎非常hackish
# POST /resource/sign_in
def create
resource = User.find_by_email(params[:user][:email])
redirect_to(new_user_session_path, :notice => 'Invalid Email …Run Code Online (Sandbox Code Playgroud) 我喜欢在单独的选项卡中运行Spork运行我的Rspec测试.我经常使用我的测试rspec spec,我打算用"递归搜索并运行spec文件夹中的所有内容".
我最近意识到这实际上没有运行我的所有测试.我现在有一个spec/requests未运行的spec文件.我知道这是因为我编辑了其中一个测试以引发错误,并执行以下操作:
rspec spec - 没有错误提出.rspec spec/requests- 仍然没有错误提出,并且0 examples, 0 failures!rspec spec/requests/my_controller.rb- 宾果游戏.17 examples, 1 failure并且失败有我的错误消息.为什么Rspec找不到我的所有测试文件?这是配置问题,还是我需要使用不同的命令来运行我的测试?
我需要立即运行所有测试,以确保我不会引入回归.
(顺便说一句,不使用Spork没有任何区别.)
我正在为我的桌子写一个夹具.并且其中一个coloums将JSON字符串作为值.
问题是夹具没有加载失败,因为:
Fixture::FormatError: a YAML error occurred parsing /home/saurajeet/code/dcbox/test/fixtures/hardware.yml. Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Please have a look at http://www.yaml.org/faq.html
The exact error was:
ArgumentError: syntax error on line 145, col 73: ` portslist: [{"name":"ob1","port_num":0,"port_type":"network"},{"name":"ob2","port_nu'.....
Run Code Online (Sandbox Code Playgroud)
任何解决方案.
我正在使用Rails 3.2.2,我想在我的数据库表列中存储和处理一个百分比值.你有什么指教一下(例如,什么类型的- ,,:integer ,... -列的我应该设置)?是否有关于存储百分比值的必须/应该知道的警报?:float:decimal
精度应为2(1.99%,50.01%,...).
注意:我读过这篇文章.
所以这是使用curl的请求:
curl -XPOST -H content-type:application/json -d "{\"credentials\":{\"username\":\"username\",\"key\":\"key\"}}" https://auth.api.rackspacecloud.com/v1.1/auth
Run Code Online (Sandbox Code Playgroud)
我一直试图用ruby做同样的请求,但我似乎无法让它工作.
我也尝试了几个库,但我无法让它工作.这是我到目前为止所拥有的:
uri = URI.parse("https://auth.api.rackspacecloud.com")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new("/v1.1/auth")
request.set_form_data({'credentials' => {'username' => 'username', 'key' => 'key'}})
response = http.request(request)
Run Code Online (Sandbox Code Playgroud)
我得到415不支持的媒体类型错误.
我知道可以通过RUBY_VERSION常量获取Ruby版本(例如"1.9.3").但是,我想知道如何确定确切的版本(例如:"1.9.3-p0").原因是在早期版本的Ruby 1.9.3中有一个错误没有修复,它在更高版本中运行,我想在一个gem中使用一些代码来解决这个问题.
这是我想要展示的内容:
May 13, 2012
Run Code Online (Sandbox Code Playgroud)
这是显示的内容:
2012-05-13
Run Code Online (Sandbox Code Playgroud)
我搜索了一些答案,它引导我" 在Ruby中格式化日期和浮动 ",它提到了一个可能的解决方案:
<p class="date"><%= @news_item.postdate.to_s("%B %d, %Y") %></p>
Run Code Online (Sandbox Code Playgroud)
但是,这根本不会改变输出.没有调试错误或异常被触发.
我可以做到这一点,它完美无缺:
<p class="date"><%= Time.now.to_s("%B %d, %Y") %></p>
Run Code Online (Sandbox Code Playgroud)
这是我的迁移文件(查看我使用的数据类型):
class CreateNewsItems < ActiveRecord::Migration
def change
create_table :news_items do |t|
t.date :postdate
t.timestamps
end
end
end
Run Code Online (Sandbox Code Playgroud) 使用Ruby 2.3:
在示例1中,字符串键"a"自动转换为符号,而在示例2中,它保持字符串.
例1
{"a": 1}
# => {:a=>1}
Run Code Online (Sandbox Code Playgroud)
例2
{"a"=>"c"}
# => {"a"=>"c"}
Run Code Online (Sandbox Code Playgroud)
我认为:与旧式哈希火箭=>语法相同.到底是怎么回事?为什么我在Rails中从未注意到这一点?这HashWithIndifferentAccess是否模糊了这个?
什么是两种方法之间的差异as_json和to_json.它们一样吗?如果没有,它们之间有什么区别?
所以我按照Jekyll网站上的指南安装和运行Jekyll(确定我不必在这里发布).并且网站运行正常,但出于某种原因,我没有看到_layouts应该存在的目录.在页面中,我可以看到它引用了一些布局,即:
的index.html
---
layout: default
---
<div class="home">
Run Code Online (Sandbox Code Playgroud)
about.md
---
layout: page
title: About
permalink: /about/
---
This is the base Jekyll theme.
Run Code Online (Sandbox Code Playgroud)
但是当你查看项目的目录结构时:
没有布局文件夹..那是什么?一切都有效.在localhost上运行时看起来非常好.