问题标签 [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.

0 投票
1 回答
731 浏览

ruby-on-rails - 错误(RoR 教程)-下拉菜单未触发 w/bootstrap-会话销毁路径不正确?

Rails 教程 (Hartl) v3.2 中的错误

我在第 8 章,在练习之前所有测试都正确通过。除了两个问题(我认为它们是相关的)。

由于会话销毁路径似乎不正确,因此下拉菜单未使用引导程序触发。我还尝试使用 form_tag 代替 form_for 标记,但我不断收到以下错误:

这是 app/views/sessions 下的 new_html.erb:

这是 session_controller.rb:

最后,这是 rake 路由输出:

任何帮助都会很棒。

编辑:

cbright 有它。我不得不修改 session_controller。以下两行按预期工作。

0 投票
3 回答
410 浏览

ruby-on-rails - 第 9 章 授权测试失败

在 Michael Hartl 的新 Rails Tutorial Book (3.2) 的第 9.2.1 节中,定义了一个测试,以确保如果用户登录,他们不能更新 (PUT) 更改给另一个用户。如果尝试这样做,则应将用户重定向到主页。因为网页不能直接发出 PUT,所以 RSPEC 测试使用:

在 { 放 user_path(wrong_user) } { response.should redirect_to(root_path) } 之前

这个测试用例失败并查看它似乎正在退出的日志,因为 UserController 中的第一个 before_filter (signed_in_user) 正在重定向到登录页面。

这是此示例应用程序的 github 页面: https ://github.com/treetopvt/sample_app

0 投票
3 回答
44025 浏览

ruby-on-rails - rake db:migrate 不工作

我正在学习 Rails 教程并被卡住了。从代码清单 8.16 开始,我对以下内容进行了修改<timestamp>_add_remember_token_to_users.rb

然后指南说像往常一样更新开发和测试数据库:

我对 *remember_token* 的用户测试仍然失败,所以我查看了 dev 中的用户表并使用命令行 sqlite3 测试数据库。它们看起来像这样:

似乎我的迁移尚未运行,但我不知道如何强制它运行。

0 投票
7 回答
1644 浏览

ruby-on-rails-3 - Ruby 教程 Ch9 练习 #9 - 不允许管理员删除自己

我是 Ruby 和 Rails 的新手,这就是我阅读 Michael Hartl 的 Rails 教程的原因。我被困在第 9 章,练习 #9。我已将用户控制器中的 def destroy 代码更新为:

当我通过在管理员登录时将“删除”链接添加到 current_user 来在浏览器中进行测试时,这似乎有效。但练习中说要先编写一个测试——我这样做了,但似乎没有用。这是我的测试:

也许我正在测试的东西不应该被测试。如何测试用户控制器中对 def destroy 代码的修改?

0 投票
1 回答
4824 浏览

ruby - Ruby Guard 问题 - “请安装 sqlite3 适配器” - railstutorial.org

我正在关注Ruby on Rails 教程,并且在测试部分有些困惑,特别是 - 3.6.2 - 使用 Guard 进行自动化测试

根据教程关于部署到 Heroku 的说明,我已经切换到 Postgresql 并从我的 gemfile 中删除了 sqlite3 并进行了捆绑安装以进行更新。

但是,一旦我跑步

捆绑执行守卫

我收到消息:

/Users/username/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.1.3/lib/bundler/rubygems_integration.rb:147:in block in replace_gem': Please install the sqlite3 adapter:gem install activerecord-sqlite3-adapter`(sqlite3 是不是捆绑包的一部分。将其添加到 Gemfile。)(LoadError)

我很困惑为什么我需要这个,因为 sqlite3 已从我的环境中删除?

我的 Gemfile 如下:

我有点困惑,因为教程中的 Gemfile 再次显示 sqlite3,即使它在教程的上一节中被删除。

0 投票
1 回答
333 浏览

ruby-on-rails - Rails 教程 3.2 Ch11 SQL 语法

我正在从 Rails 教程中学习 Rails。我在11.3.1 节遇到了一个问题,代码清单 11.44 中的代码:

不会在 follow_user_ids 中返回 user_id。

在stackoverflow上搜索后,我在这里找到了解决方案,它说只需删除“join”方法就可以了。

但是我很好奇为什么在删除“加入”方法之前运行 RSPEC 时没有错误。

在清单 11.41 中:

如果“join”方法会使SQL语句出错,为什么RSPEC通过了?

有没有人有同样的问题?

更新 2012.04.03

我使用 Rails 控制台来检查问题。

哪个得到了

然后是 SQL

结果是

返回一个空数组。

但我所有的 rspec 都通过了。还是不知道。

0 投票
1 回答
2235 浏览

sql - ActiveRecord::StatementInvalid in Users#show Rails 教程第 12 章

我在网站上收到了一堆失败的测试(准确地说是 21 个)/一条错误消息。

这是网站上的消息:

ActiveRecord::StatementInvalid in Users#show
显示 rails_projects/sample_app/app/views/shared/_stats.html.erb 其中第 11 行提出:

SQLite3::SQLException:靠近“id”:语法错误:SELECT COUNT(*) FROM "users" INNER JOIN "relationships" ON "users".id = "relationships".follower_id WHERE (("relationships".followed_id = 101 ))

它还提取了“提取的源代码(在第 11 行附近):”

还:

当我拿走

行,该站点可以正常工作(并且我的失败测试缩小到 6 个)。

失败的测试似乎有类似的 SQL 错误。以下是失败的测试:

以下是他们得到的错误(分别):

这是我的“_stats.html.erb”文件:

这是我的“show.html.erb”文件:

这是我的关系数据库文件(如果有帮助):

我尝试删除迁移并重新开始(也准备测试数据库),但仍然没有。

如果我应该提供任何其他文件来帮助解决问题,请告诉我!

编辑

这里的问题是我的用户模型。这是编辑后的版本(相关部分):

之前,foreign_key 设置为“followed_id”

0 投票
2 回答
460 浏览

ruby-on-rails - railstutorial.org - 6.11 - rspec 失败,是 postgresql 的问题吗?

我正在阅读 Rails 教程,并在第 6.11 节

出于某种原因,我在 rspec 中得到了 4 个示例和 4 个失败,而在本教程中,我得到了 4 个示例和 1 个失败(因此为 0)。

我在我的 rspec 中看到了这一点:

问题是,本教程是在 sqlite 中进行的,但我迁移到了 postgres(如前面教程中所建议的那样),所以我也可以了解 postgres。这是造成问题的原因吗?无论如何,activerecord 不应该让我使用什么样的数据库变得透明吗?

我已经创建了正确的数据库,更新了我的 database.yml,运行 db:mgirate 和命令

在沙盒控制台中工作正常。

非常感谢任何帮助。我试图在这里保持领先,对我来说,这是学习 Rails 最具挑战性的部分。几乎感觉就像一个人花费了 90% 的精力来编写和调试测试。(到目前为止,我遇到的唯一绊脚石/头脑弯曲的 headca 是 rspec 测试)

user_rspec.rb:

--

作为第二个问题,我发现我的 rspec 测试运行了多次?我安装了 ruby​​-gntp gem,发现每次运行测试时都会出现多次咆哮,并且信息相同。

rspec 多次

0 投票
1 回答
1484 浏览

ruby - Rails 教程第 7 章,练习 4

我在railstutorial.org的第 7 章中的练习 4 遇到问题。

以下是测试:

这是它应该测试的内容,users_controller.rb:

这里也是 show.html.erb 代码:

当我运行测试时,我得到了这个:

它应该将测试用户保存到测试数据库,但由于某种原因,user.name 变成了 nil。有任何想法吗?

谢谢!

0 投票
2 回答
2613 浏览

ruby-on-rails-3 - RSpec 给出 ActiveModel::MassAssignmentSecurity::Error

我正在关注 Railstutorial.org 并在使用 Rspec 时出现 MassAssignment 错误。

可能是因为我尝试在 RSpec 中分配变量之前:

是否可以在开发或测试模式下禁用 MassAssignment 保护?或者当 RSpec 运行时?任何帮助都会很棒!谢谢