Tag: railstutorial.org

Excon ::错误::禁止(预期(200)实际(403禁止)

当我尝试将图片上传到“Car”对象时,我被拒绝访问S3。 但是,由于我添加了S3,因此资源文件夹中的站点图像显示得很好。 我得到的具体错误是: 2015-02-17T14:40:48.459629+00:00 app[web.1]: Excon::Errors::Forbidden (Expected(200) Actual(403 Forbidden) 2015-02-17T14:40:48.459630+00:00 app[web.1]: excon.error.response 2015-02-17T14:40:48.459635+00:00 app[web.1]: “Connection” => “close” 2015-02-17T14:40:48.459637+00:00 app[web.1]: “Content-Type” => “application/xml” 2015-02-17T14:40:48.459639+00:00 app[web.1]: “Date” => “Tue, 17 Feb 2015 14:40:48 GMT” 2015-02-17T14:40:48.459640+00:00 app[web.1]: “Server” => “AmazonS3” 2015-02-17T14:40:48.459632+00:00 app[web.1]: :body => “\nAccessDeniedAccess Denied2CE306ACD51F02A1tKLXUAKxyDFTMExl7kE+AuVVsEJOFqXh983li6N7R2UlYDXv1Z3GJRvW5zy1XIXVs2zArp310vg=” 2015-02-17T14:40:48.459642+00:00 app[web.1]: “x-amz-id-2” => “”part of secret key”=” 随着“秘密密钥的一部分”明显被编辑。 我尝试过创建一个不同的用户并使用新密钥,但这没有用。 不是从这里去的地方。 应用程序/上传/ […]

Rails教程 – 9.3.3 Current_User

所以我正在关注Rails教程 ,并且我已经使用sign_in SessionHelper进入了我们想要用户签名的部分。 问题1 : module SessionsHelper def sign_in(user) cookies.permanent.signed[:remember_token] = [user.id, user.salt] current_user = user end def current_user=(user) #set current_user @current_user = user end def current_user #get current_user @current_user end 我遇到困难的部分是: 问题是它完全无法解决我们的问题:使用代码,用户的登录状态将被忘记:用户一进入另一页面。 我不明白这是怎么回事? 我继续阅读并了解添加的代码,确保@current_user永远不会为零。 但是我没有看到如果我们刚刚在第5行建立了current_user将如何恢复为nil。 问题2 : 更新后的代码如下: module SessionsHelper def sign_in(user) #in helper because used in view & controller cookies.permanent.signed[:remember_token] = [user.id, user.salt] […]

在Rails 4.0上安装Ruby时出错 – atomic_reference.c错误71

我在尝试安装rails(或更具体地说,primefaces)时遇到错误。 Building native extensions. This could take a while… ERROR: Error installing rails: ERROR: Failed to build gem native extension. /Users/dima/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb creating Makefile make compiling atomic_reference.c atomic_reference.c:50:9: warning: implicit declaration of function ‘OSAtomicCompareAndSwap64’ is invalid in C99 [-Wimplicit-function-declaration] if (OSAtomicCompareAndSwap64(expect_value, new_value, &DATA_PTR(self))) { ^ 1 warning generated. linking shared-object atomic_reference.bundle make install /usr/bin/install -c […]

Rails 3教程第11章“validation失败:已经收到电子邮件”错误

我的麻烦出现在Ruby on Rails Tutorial的第11章中。 我看到这个rspec错误: Failure/Error: :user => Factory(:user, :email => Factory.next(:email))) ActiveRecord::RecordInvalid: Validation failed: Email has already been taken 首先在user_spec.rb然后在micropost_spec.rb 。 这真是令人费解。 我认为每次autotest运行rspec时,工厂语句都在一个新的测试数据库中生成一个用户。 我用git检查了主分支中的源文件并再次尝试,但看到了同样的错误。 因此我怀疑它与db内容有关,而不是代码。 所以,我做了以下事情: restarted “rails s” restarted autotest rake db:reset rake db:migrate rake db:test:prepare rake db:populate ……一切都变绿了。 rspec测试通过了。 可能有一个更“重要”的解决方案,但我很激动这个工作。 希望它可以帮助别人。 我只能得出结论,我的测试/开发以某种方式在数据库中添加了一些意想不到的东西。 我想上面的步骤是在第11章结尾附近让自己成为新数据库的好方法。 有没有更直接的方法来解决这个问题? 错误是否表明我在没有意识到的情况下解决了其他问题? 我认为运行rspec并不能保证每次都有新的测试数据库。 这是一个错误的假设吗?

rake db:migrate不起作用

我正在通过rails教程并且遇到困难。 从代码清单8.16开始,我对_add_remember_token_to_users.rb进行了以下修改: class AddRememberTokenToUsers < ActiveRecord::Migration def change add_column :users, :remember_token, :string add_index :users, :remember_token end end 然后该指南说像往常一样更新dev&test db: $ bundle exec rake db:migrate $ bundle exec rake db:test:prepare 我对* remember_token *的用户测试仍然失败,所以我看了dev中的用户表,用命令行sqlite3测试数据库。 它们看起来像这样: sqlite> .schema users CREATE TABLE “users” ( “id” INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, “name” varchar(255), “email” varchar(255), “created_at” datetime NOT NULL, […]

在我的路线上出现一个奇怪的错误,“缺少必需的钥匙”栏杆4

所以我在我的localhost:3000上收到此错误。 我正在制作一个gif发布博客应用程序,我正在尝试为我的_feed_item.html.erb部分中显示的项目添加编辑function。 我已经发布了下面的错误和一个gist中的一些源文件的链接。 我相信路线还可以,但是“缺少必需的钥匙:[:id]”这件事是我不明白的一个方面。 不知道为什么这不像我的删除function那样好用。 其中一些代码基于Hartl的rails教程。 app / views / shared / _feed_item.html.erb第25行引出: 没有路由匹配{:controller =>“microposts”,:action =>“edit”}缺少必需的键:[:id] 提取的来源(第25行(见下面的粗线)): **** 链接到Gist

用户注册测试在M.Hartl的Rails教程中失败

我一直在关注M. Hartl的Rails教程,我遇到了一个问题。 当我从第10章开始,所有代码都正常工作,我的测试套件正在通过。 在第11章中,我到目前为止所做的就是创建一个新的分支。 我的文件都没有被修改过。 但不知何故,我的测试套件现在失败了。 更奇怪的是,它不会100%失败。 有时它会通过,但大部分时间都会失败(如果我一次又一次地运行它而不更改任何代码)。 相关代码和错误消息如下。 任何帮助将非常感激。 谢谢 错误: FAIL[“test_valid_signup_information_with_account_activation”, UsersSignupTest, 3.902866843] test_valid_signup_information_with_account_activation#UsersSignupTest (3.90s) Expected: 1 Actual: 2 test/integration/users_signup_test.rb:29:in `block in ‘ user_signup_test.rb require ‘test_helper’ class UsersSignupTest < ActionDispatch::IntegrationTest test "invalid signup information" do get signup_path assert_no_difference 'User.count' do post users_path, user: {name: "Stevan", email: "foo@invalid", password: "foo", password_confirmation: "bar"} end assert_template […]

Rspec和命名路由

我对rails非常陌生,并试图遵循railstutorial。 一切顺利,除了我的测试无法通过命名路线(5.3.3) 我的routes.rb: SampleApp::Application.routes.draw do resources :users match ‘/signup’, to: ‘users#new’ match ‘/help’, to: ‘static_pages#help’ match ‘/about’, to: ‘static_pages#about’ match ‘/contact’, to: ‘pages#contact’ root to: ‘static_pages#home’ #Commented stuff 我的第一次测试(spec / controllers / static_pages_controller_spec.rb): describe “Static pages” do subject { page } shared_examples_for “all static pages” do it { should have_selector(‘h1’, text: heading) } it { […]

无法启动WEBrick,Rails gem的文件夹为空

我正在关注Michael Hartl的Ruby on Rails教程 ,我一直试图在我的Windows 7机器上启动rails服务器。 我正按照第1.2.5章中的说明尝试这样做。 ,即通过打字 rails server 但是,这不会启动WEBrick,而是返回’rails’命令的使用说明。 我一直在谷歌上搜索一段时间,而且一些答案似乎暗示了rails gem的问题。 现在,我找到了rails gem文件夹(“C:\ RailsInstaller \ Ruby1.9.3 \ lib \ ruby​​ \ gems \ 1.9.1 \ gems \ rails-3.2.3”),它是空的! 当我尝试时 rails -v 它返回“Rails 3.2.16”,虽然我删除了这个版本的gem; 如果我试试 gem list 它一直告诉我版本是3.2.3。 这一直持续到我删除铁路版本3.2.16,结果导致了 rails -v 返回’Rails 3.2.3’,但我还是无法启动WEBrick。 任何帮助,将不胜感激。

Hartl Ruby on Rails教程4 ch 10,用户编辑测试失败

我正在尝试使用Hartl的教程创建一个自定义网站,从而练习Ruby on Rails。 到目前为止,情况一直很顺利,但我在用户编辑测试“使用友好转发成功编辑”中收到错误,其中用户在登录后未被重定向回编辑页面。这是我收到的错误消息: FAIL[“test_successful_edit_with_friendly_forwarding”, UsersEditTest, 3.1409137547016144] test_successful_edit_with_friendly_forwarding#UsersEditTest (3.14s) Expected response to be a redirect to but was a redirect to . Expected “http://www.example.com/users/787258272/edit” to be === “http://www.example.com/users/787258272”. test/integration/users_edit_test.rb:23:in `block in ‘ 我觉得这个解决方案非常简单,我错过了,但我似乎无法弄清楚它是什么。 这是我的users_controller: class UsersController < ApplicationController before_action :logged_in_user, only: [:edit, :update] before_action :correct_user, only: [:edit, :update] def show @user = User.find(params[:id]) end def […]