问题标签 [railsapps]

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 回答
989 浏览

ruby-on-rails-4 - 为什么我的枚举值在使用 Pundit gem 的 minitest 中是错误的?

我使用rails- devise-pundit示例应用程序从 RailsApps 创建了一个入门应用程序。我正在尝试编写一个用户控制器测试,因为我计划更改一些功能并且我想确保事情仍然有效。专家 UserPolicy 没有返回基于 User 类中角色枚举的正确值。UserPolicy.index? 当从 UsersControllerTest 中的第一个测试调用时,下面看到的方法返回 false。抱歉,这里有很多代码和细节。我希望每个人都可以跟随它。

这是 UsersControllersTest 中的失败测试。响应是 :redirect 而不是 :success。

这是我的用户控制器类,只是显示了我的问题所在的索引方法。authorize @users应该调用该UserPolicy.index?方法。

我的专家用户策略类。当我更改index?方法使其返回 true 时,我的 UsersControllerTest 中的响应是:成功。所以由于某种原因@user.admin?没有返回正确的值。

更奇怪的是,我创建了一个 UserPolicyTest 类,当我index?从那里测试调用时,我得到了正确的响应。此测试正常工作:

这是我的用户模型:

这是我的管理员用户测试夹具:

我发现在夹具中设置角色不起作用。我猜这是因为after_initialize :set_default_role, :if => :new_record?我的用户模型中的行。如果有其他原因或更好的方法来处理这个问题,请告诉我。

更新:也许这是由强参数引起的。当我尝试使用 pry 调试代码时,我发现在 UsersControllerTest 中,登录后,管理员用户的角色为 2,这是正确的。但是当它到达 User.Policy.index? 时,角色为 0。我可能需要将角色字段添加到设计强参数中。不久前我看到了一些关于如何做到这一点的东西。看起来并不容易。如果有人在我得到答案之前知道答案,请告诉我。

0 投票
4 回答
4695 浏览

railsapps - 无法启动 Rails 服务器 - 未初始化的常量 Sprockets::Rails::VERSION::(NameError)

我只是想通过 railsapps.org在线学习 Ruby on Rails书籍。我已经安装了所有东西,并且卡在教程中的“启动 Web 服务器”。

当我执行“$ rails server”时,我得到以下信息:

我不知道问题是什么,因为此时我对 Rails 或 Ruby 一无所知。进入门槛很高,不是吗?gem sprockets-rails 似乎存在问题,但我不知道如何处理或从哪里开始,因为我什至还没有开始使用 rails。

0 投票
7 回答
8252 浏览

ruby-on-rails - 无法安装 Rails -“文件存在 @ dir_s_mkdir”错误

我已经安装了导轨并且几乎可以工作。正在解决另一个问题,我不小心关闭了 bash 窗口。所以我重新打开它,现在我根本无法使用rails,它告诉我没有安装rails。所以我跑了gem install rails --no-ri --no-rdoc,现在我得到以下信息:

我该如何纠正这个错误?

0 投票
3 回答
3530 浏览

ruby-on-rails - 在 Rails 4.1.0 上使用从 ENV 变量设置的 config/secrets.yml 变量的问题

很久没有玩过 Rails 了,所以请浏览一下Learn Ruby on Rails教程,这非常棒。

我在使用 google 身份验证时遇到问题,示例代码从下面的 app/models/contact.rb 模型 update_spreadsheet 方法调用 config/secrets.yml 变量(从 shell 中的 ENV 读取)

def update_spreadsheet connection = GoogleDrive.login(Rails.application.secrets.gmail_username, Rails.application.secrets.gmail_password)

我通过 ~/.bash_profile 设置了 ENV 变量,并确认使用以下代码可以使事情正常工作,但这不是示例代码,所以我只是在破解。

def update_spreadsheet connection = GoogleDrive.login(ENV["GMAIL_USERNAME"], ENV["GMAIL_PASSWORD"])

我可以让它工作,但是,我想按照教程学习并知道如何更好地排除故障。如果有人有指针,将不胜感激。

在我的 config/secrets.yml 文件中看起来像:

development: gmail_username: <%= ENV["GMAIL_USERNAME"] %> gmail_password: <%= ENV["GMAIL_PASSWORD"] %>

谢谢

0 投票
2 回答
368 浏览

ruby-on-rails - I need to start over with a fresh, ground zero, install of Rails. How do I do that?

Running Mac OS X Mavericks, I have completely jacked up my Rails installation to the point that I am unable to sort out what all is wrong. I'm working through the railsapps.org book on learning rails and am simply trying to set up the test environment so I can actually start learning... Anyway, I'm so messed up now that I really just need to flush it all and start over. I have reinstalled Rails, and now the default gemset is empty. I am unable to figure out at this point how to repopulate it with the default gems (uninstalling and reinstalling Rails did not do this for me).

At this point I'm so far down a rabbit hole that I'm unable to orientate myself, so I feel like I need to just resurface and start over from zero fresh. How would I go about resetting my environment such that I can do this? I assume I need to uninstall Rails, RVM, etc?

0 投票
3 回答
99 浏览

ruby-on-rails - Rails - 关闭终端并重新启动机器 - 现在 bash 告诉我没有安装 rails

运行 OSX Mavericks、ruby 2.1.1p76(2014-02-24 修订版 45161)[x86_64-darwin13.0]、rvm 1.25.23(主)和 rails-4.1.0(据称)

我正在阅读railsapps.org关于学习 rails的书,并且在昨天完成了大约 1/2 的工作。当我停下来休息一天时,我关闭了 iTerm2 并关闭了 Macbook Pro。今天,我打开电源,打开 iTerm,导航到我的工作目录(~/rubyonrails/learn-ruby)并输入rails -v.

我看到这个:

所以我运行sudo gem install rails它,它显示它已经安装了 rails-4.1.0。现在rails -v仍然给我上面相同的错误消息。

我也尝试过rvm use ruby-2.1.1@learn-rails先运行,但仍然收到错误消息。

所以我有点卡住了,我不知道该怎么做才能让rails正常工作。另外,我该如何设置 bash 环境,这样我就不必每次都经历这个?导航到我的工作目录并开始工作而不必每次都进行大量重新安装和重新配置会很好。

问候,杰夫

0 投票
2 回答
102 浏览

ruby-on-rails - 在 Rails 3.2 中访问参数

我正在学习 RailsApps Stripe 教程。

当通过控制器创建新订阅者时,devise registration他们将通过控制器定向到他们的内容页面content。我想使用他们nameemail address在他们的内容页面上注册时创建。但我似乎无法将参数带入内容控制器。

我投入@user = User.find(params[:id])content_controller但我得到了错误"Couldn't find User without an ID".

在错误页面上,它在 Request Info > rack session: 下列出"warden.user.user.key"=>["User", [2]

那么这是否意味着用户 #2 的 ID 被传递给content_controller但我无法访问它?

0 投票
4 回答
493 浏览

ruby-on-rails - Rails 中的 Google 驱动器身份验证错误

运行 OSX Mavericks、ruby 2.1.1p76(2014-02-24 修订版 45161)[x86_64-darwin13.0]、rvm 1.25.23(主)和 rails-4.1.0(据称)

我正在阅读railsapps.org关于学习 rails的书,并且被困在“电子表格连接”中。我的代码与书中所述完全一致,并且我已经为 Google Drive 设置了一个应用程序专用密码并对其进行了测试。我的代码如下所示:

我的 secrets.yml 文件包含以下内容:

我按照教程正确配置了我的 .bashrc 文件。

当我输入联系表格信息并按“提交”时,我收到以下错误:

如果我上去硬编码登录名和应用程序专用密码,Rails.application.secrets.email_provider_username它就Rails.application.secrets.email_provider_password可以正常工作。作为一个新手,我无法按照代码来了解Rails.application.secrets.email_provider_username指向我的 .bashrc 设置的位置或方式。

任何帮助是极大的赞赏。

问候,杰夫

0 投票
1 回答
646 浏览

ruby-on-rails - 在 Rails 中使用 Mailchimp 时出现无效的 URI 错误

运行 OSX Mavericks、ruby 2.1.1p76(2014-02-24 修订版 45161)[x86_64-darwin13.0]、rvm 1.25.23(主)和 rails-4.1.0(据称)

我正在阅读railsapps.org关于学习 rails的书我已经完成了 mailchimp 电子邮件列表代码的实现,当我在表单上按提交时,我收到以下错误:

我的调试屏幕似乎表明它在通话中失败了

我将我的 API 密钥和列表 ID 都硬编码到 secrets.yml 中,所以我知道它们是正确的。

有任何想法吗?

问候,杰夫

0 投票
1 回答
1184 浏览

ruby-on-rails - /visitors 处的 Gibbon::GibbonError 您必须在调用之前设置一个 api_key

运行 OSX Mavericks、ruby 2.1.1p76(2014-02-24 修订版 45161)[x86_64-darwin13.0]、rvm 1.25.23(主)和 rails-4.1.0(据称)

我正在阅读railsapps.org关于学习 rails的书我已经完成了 mailchimp 电子邮件列表代码的实现,当我在表单上按提交时,我收到以下错误:

我正在处理无效的 URI 错误,它在周末神秘地消失了(自上周五以来我没有碰过 Mac)。现在我有这个新错误。

我的 API 密钥和列表 ID 有效且设置正确。如果我回头查看日志,我会看到另一个错误,即mailchimp.lists.subscribe方法丢失的另一个错误。

这是书中实现的代码:

当我无法为自己调试时,我讨厌成为菜鸟......感谢回复。

问候,

杰夫