问题标签 [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 投票
2 回答
4665 浏览

ruby-on-rails-3.1 - Rails 3.1 link_to 未显示确认或正确销毁

我一直在阅读 railstutorial.org 上的章节并使用 Rails 3.1.3,因为我很疯狂和/或想要挑战。我设法轻松地找出了大多数版本问题,但这个问题难倒了我一段时间。

在 10.4.2 中,Michael Hartl 使用以下代码删除用户:

如果您在浏览器(chrome)中对其进行测试,它将无法正常工作,而是将您发送到该用户页面。

如果您包含以下内容,它应该可以工作:

但它在 Rails 3.1 中失败(它应该适用于 Rails 3.0,至少我听说过)。

0 投票
1 回答
317 浏览

ruby-on-rails - Ruby on Rails 3 教程:“Heroku 控制台”

我正在阅读这本教程书,并设置了我的 heroku 帐户和 git,并已成功将页面推送到 heroku。当我输入命令“heroku 控制台”时,我得到以下信息:

Nicholass-MacBook-Pro:sample_app nbkincaid$ heroku 控制台
!内部服务器错误

我无法找出原因,heroku 日志并没有给我太多帮助。有没有人有办法尝试调试这个?谢谢你,尼克。

0 投票
1 回答
246 浏览

ruby-on-rails - railstutorial 第 9 章练习中的 integration_sign_up 不起作用

我正在从 Rails 教程书中学习 rais:http ://ruby.railstutorial.org/chapters/sign-in-sign-out#fnref:9.14

我正在做这个练习。任务是在规范助手中创建一个登录方法,以便它可以在集成测试中使用。他已经给出了代码:

所以,在我的 layout_links_spec.rb 集成测试中,我打算使用它。

我将所有内容都注释掉并使用integration_sign_in(Factory(:user)). 我得到的错误是

但是,如果我使用看起来与 integration_sign_in 函数非常相似的原始版本,则测试通过。有人可以提供解释吗?

谢谢。

0 投票
2 回答
376 浏览

ruby-on-rails - Michael Hartl 的 Rails 教程 3 - Ch. 2 Ex 2.2 - 无法让 Rails Generate Scaffold User... 工作

尝试学习 Ruby on Rails 3 教程书,现在挂了:第 2.2 节

例子说:

我得到:

有人可以让我走上正确的轨道吗?谢谢!

0 投票
1 回答
392 浏览

ruby-on-rails - 在 Rails Turorial 上使用 following_ids 映射时出现“没有这样的列”错误 - 可能是由数组方括号引起的?

我正在尝试完成railstutorial.org 教程的第 12.3 节。

在第 12.3 节的开头,我的 rspec 测试通过并且站点正常工作。但是,在清单 12.42中添加清单后,大量先前通过的测试开始失败。(作为我的错误检查的一部分,我尝试直接从教程站点复制和粘贴代码,结果相同。)我尝试在 localhost 上打开该站点,发现测试失败,因为主页返回异常:

SQLite3::SQLException:没有这样的列:2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20、21、22 , 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47 , 48, 49, 50, 51: SELECT "microposts".* FROM "microposts" WHERE (user_id IN ([2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 , 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 , 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51]) OR user_id = 1) ORDER BY microposts.created_at DESC LIMIT 30 OFFSET 0

Rails.root:/Users/paulbogard/Sites/sample_app

似乎生成该异常的代码在我的 app/models/micropost.rb 中:

玩弄它,它似乎不喜欢围绕 following_ids 数组的方括号。例如,将 where 行更改为这个简化的幻数版本也会产生“没有这样的列”错误:

但是,如果我将其更改为以下内容,则不会出现错误:

而且,事实上,使用无方括号版本的所有测试都通过了,除了那些专门检查它是从关注的用户返回帖子而不是从未关注的用户返回帖子的测试(正如我所期望的那样,只需将幻数扔进SQL 查询)。

所以看起来方括号似乎让 SQLite 认为其中包含的是列名。有没有办法重写该following_ids = user.following_ids行,以便我得到一串没有方括号的数组值?还是我应该完全做其他事情?

0 投票
2 回答
5565 浏览

ruby-on-rails - Rails 教程 will_paginate 引发 undefined_method total_pages

我在 Rails 教程中被困了一段时间。我在第 10.3 节,我们应该在其中添加分页。我已将 gem 'will-paginate' 添加到我的 Gemfile 中,这是索引视图

服务器提出以下问题:

我一直在尝试寻找它..但显然类似问题的解决方案都没有奏效。有任何想法吗?

0 投票
7 回答
661 浏览

ruby-on-rails - Ruby(在 Rails 上)语法

我正在研究“Ruby on Rails 3 教程”并尝试更深入地理解语法。这是我定义的辅助操作的一些示例代码:

我的问题是关于这条线:"#{base_title} | #{@title}"

这条线的结构到底是怎么回事?

在更高的层次上,查找此类内容的首选来源在哪里?

0 投票
3 回答
1305 浏览

ruby-on-rails - Rails Tutorial Chapter 10 RSpec Failures by the end of chapter

I'm working on the Rails tutorial and as follow the instructions, I always get the results expected but after finishing chapter 10, I get the bellow errors and I can't find what it the issue is.

the app runs well and the functionalities are done but the tests don't pass. Initially I thought there might be typos and then I double checked to see if I missed something but there was not luck...

For reference this is my RSpec test:

And my user controller methods:

Here is my factories.rb

Any help would be GREATLY appreciated!!

0 投票
2 回答
766 浏览

ruby-on-rails-3.1 - RoR 教程(第 10.4 章)- 管理属性测试失败

我是一名 RoR 学习者,我前往 Michael Hartl 的 RoR 教程,但实际上我在第 10.4 章遇到了问题。我在 10.42 之前完成了所有清单,但我的 3 个 Rspec-Tests 失败了。

它说:

1) 用户管理员属性应响应管理员失败/错误:@user = User.create!(@attr) ActiveRecord::RecordInvalid: 验证失败:名称不能为空,电子邮件不能为空,电子邮件无效,密码不能为空,密码太短(最少6个字符) ./spec/requests/users_spec.rb:52:in `block (3 levels) in

2) 默认情况下,用户管理员属性不应是管理员失败/错误:@user = User.create!(@attr) ActiveRecord::RecordInvalid: 验证失败:名称不能为空,电子邮件不能为空,电子邮件无效,密码不能为空,密码太短(最少6个字符) ./spec/requests/users_spec.rb:52:in `block (3 levels) in

3) 用户管理员属性应该可以转换为管理员失败/错误:@user = User.create!(@attr) ActiveRecord::RecordInvalid: 验证失败:名称不能为空,电子邮件不能为空,电子邮件是无效,密码不能为空,密码太短(最少6个字符) ./spec/requests/users_spec.rb:52:in `block (3 levels) in

我已经仔细查看了我的 users_controllers_spec.rb 和 user_spec.rb,但我找不到错误的解释。有人有想法吗?

这是我的 user_spec.rb

编辑:用户.rb

如果缺少一些重要的细节,请询问,我准备更新这篇文章(只是不想超载它,因为代码已经足够大了)。

感谢您的关注!

0 投票
1 回答
1728 浏览

ruby-on-rails-3 - 尝试重构时如何使用“Has_secure_password”?

我正在尝试重构 railstutorial 授权机制。

我的 rails 版本是 3.2.0,我使用的是 ruby​​ 1.9.3-p0 和 postrgresql 9.1。

到目前为止,当尝试登录失败但成功登录失败时,我的测试通过了。(原因是我必须重构旧的登录机制)

这是我的会话助手登录功能:

我立即看到sign_in 函数的一个问题是has_secure_password 已经处理了加密和salt 等……我的想法是也许我应该使用password_digest 而不是employee.salt,但这也失败了。

我想让我的 cookie 在两个小时后过期。我在 api.rubyonrails.org 的 cookie 下找到了这个选项。

我的另一个问题与 has_secure_password 已经有一个 authenticate 方法这一事实有关,这意味着我不必使用 rails 教程中定义的员工模型(用户模型)中定义的身份验证定义,但是当我评论它时我得到一个标志阅读:

这是我的会话控制器创建操作:

看来 Employee.authenticate 是个问题。

所以我基本上有三个问题,它们如下:

在 Rails 教程中,我们经历了一个相当长的过程,对员工密码进行加密和应用 salt 等。由于 has_secure_password 已经解决了这个问题,我将传递什么变量给我的函数或参数来捕获加密密码?

下一个问题与 cookie 的到期有关,我将如何在 sign_in 函数中使用它?

最后,我如何使用 authenticate 方法才能让 rails 将其识别为真正的方法?

只是为了记录,我搜索了 railsguide、api.rubyonrails.org 和其他关于 SO 的与此类似的问题。当然,这只是指出我对原理缺乏了解,但我正在学习并且确实很好地指导了方向。

感谢您与我分享的任何想法、建议和资源。

更新 我重新阅读了 has_secure_password 上的 api,并且 authenticate 只需要一个参数,即未加密的密码......所以我有一些东西可以使用。

我仍然需要您提供的任何帮助、想法或建议……谢谢。

更新 我发现这篇文章处理会话超时: http: //madkingsmusings.blogspot.com/2011/05/session-timeouts-on-rails.html 我仍在努力,看看我是否可以让它为我工作,但它是为 railstutorial 量身定制的。至于其他问题,Michael Hartl 正忙于推出 Ruby on Rails 教程的第二版,在该版本中,他将处理 has_secure_password。