小编ban*_*ing的帖子

RSpec和Cucumber有什么区别?

我有6个月的Rails开发经验.我已经构建了一个现在正在使用的Web应用程序,它具有身份验证和授权以及postgresql db.

我正在继续我的第二个Rails应用程序,但这一次,经过经验教训,我想用TDD开发它,因为我注意到它更容易扩展它并修复bug.它发展缓慢,但从长远来看,它更容易处理.

我听说过Rspec和Cucumber,但他们完全被他们搞糊涂了.

我想知道RSpec和Cucumber之间的区别以及它们的用途.

从初学者(也是唯一的开发者)的角度来看,是否确实需要测试框架也是有用的.

testing tdd rspec ruby-on-rails cucumber

112
推荐指数
1
解决办法
3万
查看次数

Rails迁移:self.up和self.down与change

看起来新的rails版本与self.up和self.down方法有"变化".

那么,当必须回滚迁移时会发生什么,它如何知道要执行的操作.我需要基于在线教程实现以下方法:

class AddImageToUsers < ActiveRecord::Migration
  def self.up
    add_column :users, :image_file_name, :string
    add_column :users, :image_content_type, :string
    add_column :users, :image_file_size, :integer
    add_column :users, :image_updated_at, :datetime
  end

  def self.down
    remove_column :users, :image_file_name, :string
    remove_column :users, :image_content_type, :string
    remove_column :users, :image_file_size, :integer
    remove_column :users, :image_updated_at, :datetime
  end    
end
Run Code Online (Sandbox Code Playgroud)

如何使用新的更改方法执行相同的操作?

migration ruby-on-rails

83
推荐指数
2
解决办法
4万
查看次数

Postgres DB无法在Mac OSX上启动:ERROR说:Unix域套接字上的连接

我已经安装了Postgresql,然后在我的本地Mac OSX Mountain Lion上运行了一堆rails应用程序并创建了数据库等.过了一段时间,当我启动pgAdminIII并尝试启动数据库服务器时,我遇到了这个错误:

在此输入图像描述

快速谷歌显示这篇文章.更多的浏览指出,可能存在某种postmaster.pid文件,这可能是导致这种情况的根本原因.如果我删除那些东西就没事了.

但是,在我删除计算机上的东西之前,我想确保我以系统的方式调试它,这不会导致更多的问题.

我在删除该文件之前读到的某个地方,我需要运行这个命令:

  ps auxw | grep post
Run Code Online (Sandbox Code Playgroud)

如果我没有得到任何结果,可以删除该文件.否则不是.好吧,我得到了这个命令的结果:

  AM               476   0.0  0.0  2423356    184 s000  R+    9:28pm   0:00.00 grep post
Run Code Online (Sandbox Code Playgroud)

所以现在当然我非常困惑.

所以我该怎么做?

这是我的postgres服务器错误日志的一部分:

 FATAL:  lock file "postmaster.pid" already exists
 HINT:  Is another postmaster (PID 171) running in data directory "/usr/local/var/postgres"?
Run Code Online (Sandbox Code Playgroud)

Postgresql仍然没有运行,仍然得到相同的错误,没有任何改变.我太老了,没有检查SO就删除了东西.

有些专家可以指导一个菜鸟.

谢谢

unix postgresql macos pid pgadmin

66
推荐指数
3
解决办法
4万
查看次数

更改UILabel的文本颜色

嗨我试图在我的一个视图中更改UILabel的文本颜色,但没有运气.

我有没有在这段代码中做过一些非常明显的事情?

self.nameTopRight.backgroundColor = [UIColor redColor];
self.nameBottomRight.textColor = [UIColor redColor];
Run Code Online (Sandbox Code Playgroud)

uilabel ios

32
推荐指数
2
解决办法
5万
查看次数

Rails迁移:尝试将列的类型从字符串更改为整数

我在rails应用程序中使用rails generate migrations命令创建了一个表.这是迁移文件:

class CreateListings < ActiveRecord::Migration
  def change
    create_table :listings do |t|
      t.string :name
      t.string :telephone
      t.string :latitude
      t.string :longitude

      t.timestamps
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

然后我想将纬度和经度存储为整数,所以我试图运行:

rails generate migration changeColumnType
Run Code Online (Sandbox Code Playgroud)

并且该文件的内容是:

class ChangeColumnType < ActiveRecord::Migration
  def up
    #change latitude columntype from string to integertype
    change_column :listings, :latitude, :integer
    change_column :listings, :longitude, :integer
    #change longitude columntype from string to integer type
  end

  def down  
  end
end
Run Code Online (Sandbox Code Playgroud)

我期待列类型改变但是rake被中止并且出现以下错误消息.我想知道为什么这不通过?我在我的应用程序中使用postgresql.

rake db:migrate
==  ChangeColumnType: migrating ===============================================
-- change_column(:listings, :latitude, :integer)
rake aborted!
An error …
Run Code Online (Sandbox Code Playgroud)

ruby postgresql casting ruby-on-rails rails-migrations

30
推荐指数
4
解决办法
3万
查看次数

如何将主键添加到rails中的表

嗨,我的rails应用程序中有一个表没有任何id列或主键.多数民众赞成因为这张桌子是从以前的应用程序带入我的rails应用程序,并且该表格预先填充了数据.我现在意识到,如果没有整数主键,rails就无法在浏览器中显示编辑和显示视图.所以我需要在我的数据库中添加一个id列,它是一个主键并且自动增量.

基于我的谷歌搜索,我发现了一些关于为表创建主键的帖子,但没有完成任何内容.

所以我想知道是否有人可以帮助我.到目前为止,我所知道的是,为了更改表,必须编写一个迁移然后运行它.需要运行以添加id列的命令如下:

rails generate migration add_id_to_businesses id:primary_key
Run Code Online (Sandbox Code Playgroud)

但是,在运行此命令后,没有新列添加到我的数据库中.我不知道如何继续..如何在我的数据库中添加新列?

非常感谢一只手.....谢谢,

ruby ruby-on-rails

21
推荐指数
1
解决办法
1万
查看次数

在瘦服务器上的rails应用程序中启用https

我有一个在heroku上运行瘦服务器的rails应用程序.它目前使用http.我想使用https进行bot开发和生产.我从哪里开始这样做.

我看过这个railscast,他们展示了如何使用POW服务器.我不想使用POW服务器,我想使用瘦服务器.

我也看了一下这里:但是在这里他们假设你有开放的ssl insatlled.

我还没有找到任何显示如何从头开始在瘦服务器上运行https的地方.

我想知道是否有人有任何建议.

谢谢

ssl https ruby-on-rails thin

16
推荐指数
3
解决办法
2万
查看次数

如何在Heroku上的生产环境的Rails应用程序中设置邮件程序

我需要使用邮件程序向用户发送电子邮件,将其密码设置为Devise和活动管理员的"可恢复"功能.在开发环境中,我通过在这些文件中添加以下内容来完成此操作:

配置/环境/发展

#Added per active admin install instructions
config.action_mailer.default_url_options = { :host => 'localhost:3000' }


#These settings are for the sending out email for active admin and consequently the   devise mailer
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.smtp_settings = 
{

  :address            => 'smtp.gmail.com',
  :port               => 587,
  :domain             => 'gmail.com', #you can also use google.com
  :authentication     => :plain,
  :user_name          => 'XXXXX@gmail.com',
  :password           => 'XXXXXXX'
}
Run Code Online (Sandbox Code Playgroud)

如何为生产环境获得相同的功能?我想将我的应用程序部署到Heroku.我需要添加哪些文件和代码?

production ruby-on-rails actionmailer heroku devise

15
推荐指数
2
解决办法
2万
查看次数

如何使用Ruby作为脚本语言连接到Rails之外的SQLite3数据库

嗨,我使用Ruby作为脚本语言.不是用于Web开发,而是连接到计算机上的本地数据库并对其进行操作.

我想知道如何连接.我需要下载/导入工具吗?我需要什么才能开始?

谢谢,

ruby sqlite

13
推荐指数
1
解决办法
1万
查看次数

Rails(set_no_cache方法)无法在Safari和Opera中禁用浏览器缓存

在使用Devise进行身份验证后,我发现存在一个安全漏洞,在用户注销后,会话变量被保留.这允许任何人按下后退按钮并访问登录用户的上一屏幕.

我看了这些帖子 Num 1 Num 2 Num 3

我将这些行添加到application_controller中

before_filter :set_no_cache
def set_no_cache
response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
response.headers["Pragma"] = "no-cache"
response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
end
Run Code Online (Sandbox Code Playgroud)

在_form.html.erb中,我在顶部添加了这个

<%if user_signed_in? %>
<%=link_to "Sign Out",  destroy_user_session_path, :method => :delete %><br/>
<%= form_for(@listing) do |f| %>
<% if @listing.errors.any? %>
...........
Run Code Online (Sandbox Code Playgroud)

然后我在Firefox,Chrome和Safari上测试了该应用程序.

Firefox和Chrome很好,因为我退出并点击了后退按钮,无法看到用户的上一个屏幕,但是,在Safari和Opera中,不安全的行为仍然存在.此代码没有效果.

对于如何解决这个问题,有任何的建议吗?

谢谢

ruby safari opera ruby-on-rails browser-cache

12
推荐指数
1
解决办法
7154
查看次数