标签: ruby-on-rails

控制器规范中的RSpec存根辅助方法

发现类似的问题,但令人惊讶的是没有,我发现,给出一个简单的答案......

试图在我的控制器规范中存根一个辅助方法; 不太确定哪个对象需要加倍?

Controller调用此方法:

#app/helpers/sessions_helper.rb

def signed_in?
  current_user.present?
end
Run Code Online (Sandbox Code Playgroud)

我想在规范中将其存根以返回true/false.

rspec ruby-on-rails rspec-rails

10
推荐指数
1
解决办法
9284
查看次数

Ruby/Rails安全警报

Ruby开发人员如何更新ruby和rubygem安全警报和更新?我今天发现了这个:

https://support.cloud.engineyard.com/entries/22915701-january-14-2013-security-vulnerabilities-httparty-extlib-crack-nori-update-these-gems-immediately

并想知道开发人员通常如何跟上这些类型的警报.提前致谢.

ruby security rubygems ruby-on-rails

10
推荐指数
2
解决办法
1391
查看次数

如何在Devise中自动记住用户记忆

我正在构建一个应用程序,我希望用户在他们的计算机上自动记住,而不需要"记住我"复选框.

我读到我可能不得不打电话@user.remember_me!,但不知道在哪里调用它,因为隐藏了Devise控制器.

我正在考虑在sign_in表单中添加一个隐藏的复选框字段,默认情况下标记了复选框,但我希望我能在控制器端执行此操作.

知道如何做到这一点?

谢谢!

ruby-on-rails devise

10
推荐指数
2
解决办法
5662
查看次数

无法安装ZenTest 4.8.4

当我尝试安装ZenTest时:

gem install ZenTest
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

[C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/specifications/ZenTest-4.8.4.gemspec]中的gemspec无效:格式错误的要求["<2.1,> = 1.8"]

我试图清理宝石并删除ZenTest无济于事.

怎么了?

gem ruby-on-rails zentest

10
推荐指数
1
解决办法
5039
查看次数

Heroku捆绑器不删除旧的宝石版本

我刚刚更新了几个宝石,但是当我推送到heroku时,旧的仍然被复制到vendor/bundler中并且我有一条消息

Using bson (1.8.2)
[...]
Would have removed bson (1.5.2)
Run Code Online (Sandbox Code Playgroud)

事实上,在vendor/bundler中,旧的宝石仍然被复制.

但是,如果我创建一个新的雪松应用程序并从头开始推送到Heroku,那么旧的gem不会被复制到vendor/bundle中,它会按预期工作.

旧的gem版本既不是Gemfile也不是Gemfile.lock,所以我不明白heroku bundler在哪里得到这个(过时的)信息.

任何提示?谢谢,马可

ruby-on-rails heroku ruby-on-rails-3

10
推荐指数
1
解决办法
1854
查看次数

link_to标记在同一页面rails 3上

我想使用link_to链接到同一页面上的元素

在基本的HTML中,我会这样做

<a href="#tom">Tom Roche</a>
<a id="tom">Chapter 4</a>
Run Code Online (Sandbox Code Playgroud)

我在我的应用程序中有这个

<%= link_to 'Tom Roche' %>
<h2>Tom Roche</h2>
Run Code Online (Sandbox Code Playgroud)

我如何链接这些,以便当我点击Tom Roche时,我会被Tom Roche带到h2

我试过这个

<%= link_to 'Tom Roche', our_team_path(:anchor => '#tom') %>
<h2><a id="tom">Tom Roche</a></h2>
Run Code Online (Sandbox Code Playgroud)

但它不起作用

任何人都可以指出我需要做什么,link_to由于某种原因抛弃我,即使我知道它是一个标签

谢谢

ruby-on-rails hyperlink ruby-on-rails-3

10
推荐指数
2
解决办法
6446
查看次数

我应该从rails 2.3升级到3+还是等到rails 4被释放然后升级?

我即将开始将公司旧的rails ap从2.3/1.87移植到最新版本的rails.我应该等铁路4,还是我应该等到3.2?

我们将借此机会确保有完整的测试覆盖率,并且可能还会涉及一些重写.第一个目标是确保所有当前功能都可以运行.

我们希望尽可能多的当前代码库在最新版本的rails下工作.我们将重写任何没有的部分.

ruby-on-rails upgrade ruby-on-rails-3 rails-3-upgrade ruby-on-rails-4

10
推荐指数
1
解决办法
1472
查看次数

如何更改Spree默认主页?

我想将spree站点的根路径更改为静态页面.

任何人都可以告诉我如何更改spree默认主页?

ruby-on-rails spree ruby-on-rails-3.2

10
推荐指数
1
解决办法
3109
查看次数

RoR - 不要破坏对象,只是标记为隐藏

我在RoR中有一个简单的模型,我想保留人们进入网站的东西.但是,如果用户点击"删除",我也希望能够隐藏一些内容.

所以我在我的模型中添加了一个名为"显示"的bolean属性.

我想知道,什么是最佳实践风格的方法.

我想我必须改变控制器,例如:

def destroy
 @point = Point.find(params[:id])
 @point.displayed = false
 @point.save

respond_to do |format|
  format.html { redirect_to points_url }
  format.json { head :no_content }
end
Run Code Online (Sandbox Code Playgroud)

但我不确定它是否干净.什么是最好的方法.

正如你猜我对RoR的愚蠢.大块的代码将不胜感激.

谢谢

ruby-on-rails

10
推荐指数
2
解决办法
5891
查看次数

添加TOS协议复选框与Devise

我们正在为我们的会员使用设计.我们在成员模式中添加了一个tos_agreement字段(boolean),并将其添加到views/devise/registrations/new.html.haml.

在Member模型中,我们有一个验证规则如下:

validates_acceptance_of :tos_agreement, :allow_nil => false,
  :accept => true
Run Code Online (Sandbox Code Playgroud)

它工作正常 - 如果你不接受服务条款,你不能注册.

但是,编辑设置时会出现问题.如果你去,/members/edit你会得到一个表格,你可以在那里更改你的电子邮件地址或密码.TOS协议没有任何字段,因为此时不应更改.但是,当您进行更改(例如更改密码)并提交表单时,它会返回错误消息,表明TOS协议不能为false.

我们如何告诉它在首次注册后永远不会尝试修改TOS协议?

编辑:所以我认为根本问题是我们在attr_accessible中有:tos_agreement,这是一个非常糟糕的想法,现在我想起来了.但是如果我们删除它,我们如何修改Devise以接受参数并对其执行某些操作,即使它不是可批量分配的?

validation ruby-on-rails devise ruby-on-rails-3 ruby-on-rails-3.2

10
推荐指数
1
解决办法
4095
查看次数