我有一个简单的应用程序,具有用户模型和从头开始构建的身份验证系统.我现在正在尝试使用Devise,它不起作用,作为Web开发的新手,有一些我没有掌握的东西,我不知道如何调试它.
我的问题是:Devise已安装并正常工作,除非登录始终返回"无效的电子邮件或密码",即使这两个字段都是正确的.
我开发了一个空的应用程序,添加了Devise,我没有这个问题.因此问题可能是因为我尝试将Devise添加到现有的User模型中.
我已经阅读了doc和Devise wiki,它有一个关于这个主题的主题:这里.说要从迁移字段中删除:database_authenticatable,因为User模型已经有一个电子邮件字段,并将其替换为我在迁移中执行的t.encrypted_password.
现在,在我的用户模型中,我离开了:attr_accessible中的database_authenticatable.如果我删除它,我有很多错误消息,session_path无法识别,等等...但它还没有被迁移?另外,:encrypted_password没有出现在我的模型中,这是正常的吗?...
我知道这真的是一个新手问题,我有点迷失,不知道我是否应该从一开始就重写我的应用程序,或者是否有一个简单的修复...我不知道如何调试,所有我在日志中看到,当用户应该成功登录时会出现"未授权",并且当尝试签名时,"authentication_token"也不一致
所以,我输了,如果你觉得很明显,我会很高兴听到任何建议......
我在下面添加routes.rb,User.rb,schema.rb和迁移文件
routes.rb中:
TapaG::Application.routes.draw do
devise_for :users
get "pages/home"
resources :users
resources :belongings
devise_scope :user do
get "sign_in", :to => "devise/sessions#new"
get "sign_out", :to => "devise/sessions#destroy"
get "sign_up", :to => "devise/registrations#new"
end
get "pages/more_details"
get "pages/infos_pratiques"
get "pages/contact_us"
#match 'Profil', :to => 'users#Profil'
match "more_details", :to => "pages#more_details"
match 'contact_us', :to => 'pages#contact_us'
match "infos_pratiques", :to => "pages#infos_pratiques"
match '/belongings/new', :to => 'belongings#new'
root :to => 'pages#home'
Run Code Online (Sandbox Code Playgroud)
移民:
class AddDeviseToUsers < …Run Code Online (Sandbox Code Playgroud) 问题很简单:
我无法安装RVM(单用户安装),就好像我按照RVM网站上的说明操作,即:
$ curl -L https://get.rvm.io | bash -s stable
Run Code Online (Sandbox Code Playgroud)
我在安装脚本文件的第360行(以echo开头的行)收到权限被拒绝错误:
# Perform the actual installation, first we obtain the source using whichever
# means was specified, if any. Defaults to head.
case "${version}" in
(head)
echo "${branch}" > "$rvm_path/RELEASE"
install_head ${branch:-master} || exit $?
;;
Run Code Online (Sandbox Code Playgroud)
这是错误消息:
olivier @〜$ curl -L https://get.rvm.io | bash -s稳定
bash:第360行:/ usr/local/rvm/RELEASE:权限被拒绝
如果我在上面的命令中在"bash"之前添加"sudo",它工作正常,但它是多用户安装...
我正在使用Rails 3.0.5
我有一个使用jQuery下拉清单的javascript代码,我希望在我的财物控制器的"编辑"操作中使用我的表单时,复选框显示已经检查了哪个项目,哪个不是.
基本上,它可以在Javascript中这样工作:
$('element').val([1,3,4]);
$('element').dropdownchecklist();
Run Code Online (Sandbox Code Playgroud)
让我们说在我的控制器中编辑动作,我有一个名为@selected_items的实例变量,其中包含所选的项目(这里:@selected_items = [1,3,4]),我想使用这个值实例变量到我的Javascript代码中,我该怎么办?我怎么能在.js文件中访问这个实例变量的值?
非常感谢您的回答!
我有一组传递的Rspec用户模型测试,直到我有了paperclip属性"profile picture".
回形针一切都很好,效果很好,但我希望我的测试也能更新通过.我刚刚将此行添加到user_spec文件的@attr:
:avatar => File.new (Rails.root + "public/images/Default_profile_picture.jpg")
Run Code Online (Sandbox Code Playgroud)
在before_each循环中,为用户模型创建一组标准的工作属性.
当我运行测试时,所有测试都会给出错误消息:
User model missing required attr_accessor for 'avatar_file_name' ...
Run Code Online (Sandbox Code Playgroud)
将paperclip的字段作为attr_accessor放在模型中会使问题在测试中消失,但我认为我不应该在我的模型中执行此操作(如果我这样做,则无法正常工作).
有没有人知道为什么我在测试时收到这些错误消息?...(我在spec/helper中包含了配置行Shoulda :: Matchers和需要的回形针)
感谢您发布的任何答案!
我已经安装了Anaconda for Windows.它在我的工作PC上,因此我选择了"Just for Me"选项,因为我没有管理员权限.
Anaconda安装在以下目录中:
c:\Users\huf069\AppData\Local\Continuum\Anaconda
Run Code Online (Sandbox Code Playgroud)
Windows安装程序已将此目录(+ Anaconda\Scripts目录)添加到系统路径.
我可以启动Python但尝试运行
x = randn(100,100)
给了我一个Name Error: name 'randn' is not defined,而我据了解,这个命令应该在使用Anaconda时工作,因为包含了numpy包.
如果我这样做,它工作正常:
import numpy
numpy.random.randn(100,100)
Run Code Online (Sandbox Code Playgroud)
任何人都明白会发生什么?