问题标签 [railstutorial.org]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - 使用 ruby on rails 为未登录用户查找和使用永久链接页面的 id
我正在修改一个微帖子 ruby on rails 教程应用程序,并遇到了以下让我难过的问题:
用户有一个永久链接 URL,http://localhost:3000/users/exampleuser。访问者可以访问此网址并回答调查问卷。如果 exampleuser (current_user) 登录到他们自己的帐户,则以下代码有效。但是,如果您以访客身份前来,不需要登录,我会收到一个看起来像 Null User ID 的错误。我尝试分配正确的用户 ID 的所有尝试均未成功,尽管在我看来用户 ID 不再为空。
这是我收到的错误:
在 2012-02-24 20:28:56 -0500 开始 POST "/polls" for 127.0.0.1 由 PollsController#create 作为 HTML 参数处理:{"utf8"=>"✓", "authenticity_token"=>"ZE/ KXWCnBfE8PAn1CyAM51rnQI6z2Ut1UvHavEqSkZY=", "poll"=>{"overall_grade"=>"strong", "relevance"=>"strong", "personalization"=>"strong", "design"=>"strong", "value_proposition"= >"strong", "responder_name"=>"test", "responder_email"=>"test@test.com", "comments"=>"test"}, "commit"=>"提交成绩"} 用户负载 ( 0.2ms) SELECT "users".* FROM "users" WHERE "users"."id"IS NULL LIMIT 1 Completed 500 Internal Server Error in 47ms
RuntimeError (Called id for nil, 错误地是 4 -- 如果你真的想要 nil 的 id,使用 object_id): app/controllers/polls_controller.rb:5:in `create'
使用控制台我可以看到第一个用户(exampleuser)没问题。
但是由于某种原因,这个逻辑在我的 Polls 控制器中不起作用。具体来说,我认为 Polls Controller 中的以下几行是问题所在:
任何见解将不胜感激。约翰
投票控制器
民意调查模型
用户模型
用户控制器
页面控制器
路线
ruby-on-rails - 在 Rails 3 中返回 nil 的 User.authenticate 方法?
即使用户以正确的电子邮件和密码存在于数据库中,User.authenticate 方法也会返回 nil。当从 Sessions 控制器中的 Create 操作或从 Rails 控制台 (irb) 调用身份验证方法时,会发生这种情况。
任何有关此问题的帮助将不胜感激。
这是我的用户模型:
ruby-on-rails - Rspec 和命名路由
我对rails很陌生,并试图遵循railstutorial。一切都很好,除了我的测试无法通过命名路线(5.3.3)
我的 routes.rb :
我的第一次测试(spec/controllers/static_pages_controller_spec.rb):
spec_helper.rb 看起来像(没有所有注释的东西)
我从 rspec 得到的错误都是这样的:
我已经尝试过使用
在 spec_helper 中,但它将我的错误更改为
我也尝试了不同的方式来重命名我的路线,但它们都没有奏效。我回到教程版。
如果它可以帮助找出究竟是什么问题,我在 Ubuntu 11.10 上,使用 rails 3.2.1 和 ruby 1.9.2p290。希望你能帮忙,我花了很长时间在谷歌上搜索解决方案,但没有找到任何解决方案^^'
ruby-on-rails - Sessions_Helper Rails 3 教程第 9 章中的用户分配
我正在使用 Rails 3.1.1 完成 Hartl 的教程书,一切正常,直到第 9 章并使用布局链接更新 _header.html.erb。一旦我对 _header.html.erb 和 spec/.../layout_links 进行更改,rspec 就会返回失败,并且本地网络服务器会返回错误消息而不是网页。问题似乎是 session_helper.rb 中的“用户”。我在本书的清单 9.26 中输入了以下代码:
执行此操作后,尝试在本地服务器上显示时收到错误消息:
哪个可以追溯到 <% if signed_in? %>
我的 session_helper 文件是:
有人可以指出我解决问题的正确方向吗?
ruby-on-rails - Ruby on Rails TDD;测试时出错
我正在尝试遵循 TDD on Rails 教程,该教程可在此处在线获得
在测试第一个应用程序时,我遇到了一个错误。
我的 spec.rb 代码是这样的:
运行测试后,我收到此错误:
我将非常感谢您的帮助。
ruby-on-rails - RailsTutorial.org 和 Remember_Tokens
在 Rails 教程的第 8 章中,Michael Hartl 介绍了“记住令牌”的概念,以便即使在浏览器关闭后也能记住会话。他提到一个会话由一个指向用户的记忆令牌组成,这个记忆令牌存储在一个用户对象中。
在本教程的前面部分,我们进行了大量工作来对密码进行哈希处理,这样如果我们的数据库遭到破坏,我们的密码仍然是安全的。然而,随着 remember_tokens 的引入,数据库泄露将产生一个纯文本的记忆令牌,从而使会话易于伪造。
也许有一些固有的“魔法”(通常似乎是这种情况),即使使用适当、有效的记忆令牌也会阻止 CSRF ......有人能启发我吗?
ruby-on-rails - 为 mhartl/railstutoria 寻找稳定的用户设置 gem
每次我查看 Rails 时,它都会发生变化。
唯一跟上的人是 mhartl。有了他精彩的教程。
我在找:
rvm simple-user-template-by-mh
ruby-on-rails - Ruby on Rails 教程,第 3 章 Gemfile 错误
我正在编写本教程:http ://ruby.railstutorial.org/chapters/static-pages#top ...您可以 [ctrl+f]Listing 3.1. A Gemfile for the sample app
找到我的位置。
我只是复制并粘贴了那里给出的 gemfile(它没有用,所以我继续尝试 10.42 中的一个,因为我必须使用它无论如何,在某些时候。)
对于 10.42 列表,它给了我一个错误,Could not find gem 'will_paginate (= 3.0.pre2) ruby' in the gems available on this machine
.
- Rails 是 3.0.11 版本
- Ruby 版本:1.8.7 (2012-02-08 patchlevel 358) [i386-cygwin]
接下来是显示错误的终端的复制粘贴。这里的格式很糟糕,所以我也把它放在了一个谷歌文档页面上:https ://docs.google.com/document/d/1SJsfIOtKKR2Rb228kgfpTdpYhGsWLCwfkORXJA1qYBs/edit
Brian@RobCo_Terminal /home/brian/sample_app $ rails generate rspec:install 在机器上可用的 gem 中找不到 gem 'will_paginate (= 3.0.pre2) ruby'。运行 bundle install 来安装缺少的 gem。
1) 使用 gravatar_image_tag (1.0.0.pre2) 安装带有本机扩展的 nokogiri (1.5.2) 3 [main] ruby 7644 child_info_fork::abort: 'etc.so' (0x110000) 所需的地址空间已被占用 3 [main ] ruby 6352 child_info_fork::abort: 'etc.so' (0x110000) 所需的地址空间已被占用 3 [main] ruby 1524 child_info_fork::abort: 'etc.so' (0x110000) 所需的地址空间已被占用 不幸的是,发生致命错误。请将此错误报告给位于 github.com/carlhuda/bundler/issues 的 Bundler 问题跟踪器,以便我们修复它。谢谢!/usr/lib/ruby/site_ruby/1.8/rubygems/installer.rb:483:in `build_extensions':错误:无法构建 gem 原生扩展。(Gem::Installer::ExtensionBuildError) 2) 带有本机扩展 3 [main] ruby 7644 child_info_fork::abort: 'etc.so' (0x110000) 需要的地址空间已被占用 3 [main] ruby 6352 child_info_fork::abort: 'etc.so 需要的地址空间' (0x110000) 已被占用 3 [main] ruby 1524 child_info_fork::abort: 'etc.so' (0x110000) 所需的地址空间已被占用 不幸的是,发生了致命错误。请将此错误报告给位于 github.com/carlhuda/bundler/issues 的 Bundler 问题跟踪器,以便我们修复它。谢谢!/usr/lib/ruby/site_ruby/1.8/rubygems/installer.rb:483:in `build_extensions':错误:无法构建 gem 原生扩展。(Gem::Installer::ExtensionBuildError) 2) 带有本机扩展 3 [main] ruby 7644 child_info_fork::abort: 'etc.so' (0x110000) 需要的地址空间已被占用 3 [main] ruby 6352 child_info_fork::abort: 'etc.so 需要的地址空间' (0x110000) 已被占用 3 [main] ruby 1524 child_info_fork::abort: 'etc.so' (0x110000) 所需的地址空间已被占用 不幸的是,发生了致命错误。请将此错误报告给位于 github.com/carlhuda/bundler/issues 的 Bundler 问题跟踪器,以便我们修复它。谢谢!/usr/lib/ruby/site_ruby/1.8/rubygems/installer.rb:483:in `build_extensions':错误:无法构建 gem 原生扩展。(Gem::Installer::ExtensionBuildError) so' (0x110000) 已被占用 3 [main] ruby 1524 child_info_fork::abort: 'etc.so' (0x110000) 所需的地址空间已被占用 不幸的是,发生了致命错误。请将此错误报告给位于 github.com/carlhuda/bundler/issues 的 Bundler 问题跟踪器,以便我们修复它。谢谢!/usr/lib/ruby/site_ruby/1.8/rubygems/installer.rb:483:in `build_extensions':错误:无法构建 gem 原生扩展。(Gem::Installer::ExtensionBuildError) so' (0x110000) 已被占用 3 [main] ruby 1524 child_info_fork::abort: 'etc.so' (0x110000) 所需的地址空间已被占用 不幸的是,发生了致命错误。请将此错误报告给位于 github.com/carlhuda/bundler/issues 的 Bundler 问题跟踪器,以便我们修复它。谢谢!/usr/lib/ruby/site_ruby/1.8/rubygems/installer.rb:483:in `build_extensions':错误:无法构建 gem 原生扩展。(Gem::Installer::ExtensionBuildError) 在“build_extensions”中:错误:无法构建 gem 原生扩展。(Gem::Installer::ExtensionBuildError) 在“build_extensions”中:错误:无法构建 gem 原生扩展。(Gem::Installer::ExtensionBuildError)
/usr/bin/ruby.exe extconf.rb 17 [main] ruby 7892 child_info_fork::abort: 'etc.so' (0x2E0000) 所需的地址空间已被占用 5 [main] ruby 7128 child_info_fork::abort: 地址空间'etc.so' (0x2E0000) 所需的地址空间已被占用 4 [main] ruby 7568 child_info_fork::abort: 'etc.so' (0x2E0000) 所需的地址空间已被占用 4 [main] ruby 3196 child_info_fork::abort: 'etc.so' (0x2E0000) 所需的地址空间已被占用 26 [main] ruby 2260 child_info_fork::abort: 'etc.so' (0x2E0000) 所需的地址空间已被占用 4 [main] ruby 6852 child_info_fork::中止:'etc.so' (0x2E0000) 所需的地址空间已被占用,正在检查 libxml/parser.h...没有缺少 libxml2。请访问 nokogiri.org/tutorials/installing_nokogiri。
* extconf.rb 失败 * 由于某种原因无法创建 Makefile,可能缺少必要的库和/或头文件。检查 mkmf.log 文件以获取更多详细信息。您可能需要配置选项。
提供的配置选项: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib -- without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/usr/bin/ruby --with-zlib-dir --without-zlib-dir --with-zlib-include --without-zlib-include=${zlib-dir}/include --with-zlib-lib --without-zlib-lib=${zlib-dir}/lib --with-iconv-dir --without-iconv-dir --with-iconv-include --without-iconv- include=${iconv-dir}/include --with-iconv-lib --without-iconv-lib=${iconv-dir}/lib --with-xml2-dir --without-xml2-dir --with -xml2-include --without-xml2-include=${xml2-dir}/include --with-xml2-lib --without-xml2-lib=${xml2-dir}/lib --with-xslt-dir --without-xslt-dir --with-xslt-include --without-xslt-include=${xslt-dir}/include --with-xslt-lib --without-xslt-lib=${xslt-dir }/库
Gem 文件将继续安装在 /usr/lib/ruby/gems/1.8/gems/nokogiri-1.5.2 中以供检查。结果从 /usr/lib/ruby/site_ruby/1.8/rubygems/installer.rb:446:in 记录到 /usr/lib/ruby/gems/1.8/gems/nokogiri-1.5.2/ext/nokogiri/gem_make.out每个'来自 /usr/lib/ruby/site_ruby/1.8/rubygems/installer.rb:446:inbuild_extensions' 来自 /usr/lib/ruby/site_ruby/1.8/rubygems/installer.rb:198:in install' 来自 /usr /lib/ruby/gems/1.8/gems/bundler-1.1.0/lib/bundler/source.rb:90:ininstall' 来自 /usr/lib/ruby/gems/1.8/gems/bundler-1.1.0/lib /bundler/rubygems_integration.rb:82:in preserve_paths' 来自 /usr/lib/ruby/gems/1.8/gems/bundler-1.1.0/lib/bundler/source.rb:89:ininstall' 来自 /usr/lib/ ruby/gems/1.8/gems/bundler-1.1.0/lib/bundler/installer.rb:73:in install_gem_from_spec' 来自 /usr/lib/ruby/gems/1.8/gems/bundler-1.1。
ruby-on-rails - Rails 教程 10.2 - 6:“用户#edit 中的 NoMethodError”
我第一次浏览 Hartl 教程,在第 10 章编辑/更新用户时遇到错误。接下来,我>>应该<<至少能够查看用户编辑页面,但不断收到以下错误。已经经历了几次,但似乎无法找到我的问题的根源。请注意,这是我第一次做任何与编程相关的事情,所以慢慢来。
错误
NilClass:Class 的未定义方法“model_name”
从我的用户编辑视图中错误地调用了行
<%= form_for(@user) do |f| %>
来自用户控制器的编辑方法
在我的用户新视图中使用了类似的代码块,没有任何问题,我不知道为什么这会返回 nil 并且已经尝试过新用户和现有用户。谢谢!
ruby-on-rails - Michael Hartl 教程第 6 章:错误 bcrypt_ext.bundle:[BUG] 分段错误
但是,当我将 has_secure_password 添加到我的用户模型时,我遵循了非常棒的指南:class User < ActiveRecord::Base attr_accessible :name, :email, :password, :password_confirmation has_secure_password
然后尝试通过 rails 控制台添加用户:
我收到一条很长的错误消息,开头为:
并继续进行更多行...
如果我从 user.rb 中取出“has_secure_password”并尝试创建与上面相同的用户,我会收到以下错误:
最后,如果我在模型中插入“attr_accessor :password, :password_confirmation”,我可以成功添加用户,但是,password_digest 为 nil。
我知道我做错了什么,但是,我很难过。