小编jyl*_*li7的帖子

如何使用Devise设置电子邮件确认?

是否有一个教程解释如何从头开始设置Devise的注册确认电子邮件(在开发和生产中),即如果您没有设置Action Mailer?

谷歌搜索刚刚发现了一堆与此相关的单独部分.没有一个人能够解释得足够多,而且我不确定它们是如何组合在一起的.是否有逐步解释,甚至是解释初始步骤的东西?


终于搞定了.按照下面接受的答案中的所有步骤,然后将以下内容添加到我的environment.rb文件中:

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
   :tls => true,
   :address => "smtp.gmail.com",
   :port => 587,
   :domain => "gmail.com",
   :authentication => :login,
   :user_name => "[username]",
   :password => "[password]"
 }
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails actionmailer confirmation devise

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

如何为IntegerField设置NULL而不是设置0?

我正在使用xlrd从excel文件上传一些数据,并将这些数据转换为Django中的模型(主要是IntegerField值).我的excel文件有一堆丢失的数据.不幸的是,这些丢失的数据在我的模型中转换为0,而不是NULL.这意味着当我的Person模型没有年龄时,该年龄将记录为0,而不是NULL.

改变这个的最好方法是什么?我试过这样做:

age = models.IntegerField(blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

但是默认情况下,空白字段仍设置为0.

python django xlrd django-models

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

从github隐藏我的敏感信息(例如密码)

我刚刚设置了Devise(rails认证插件),在注册时发送确认电子邮件.这涉及到我将以下内容放入我的environment.rb文件中:

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
   :tls => true,
   :address => "smtp.gmail.com",
   :port => 587,
   :domain => "gmail.com",
   :authentication => :login,
   :user_name => "[my email]",
   :password => "[my pass]"
 }
Run Code Online (Sandbox Code Playgroud)

我显然不想把它推到github,而我的通行证只是坐在那里.这里有标准做法吗?

authentication passwords ruby-on-rails github

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

从rails中的特定URL提供静态文件

假设我有一个文件"example.txt",它位于我的Rails应用程序中的assets/files文件夹中.在制作时,我可以通过网址'/assets/example.txt'访问此文件

如何设置我的routes.rb文件,以便在访问'example.txt'时可以访问example.txt的内容?

routes ruby-on-rails file asset-pipeline

11
推荐指数
1
解决办法
6525
查看次数

获取表单使用:method =>:delete(rails)

我有一个包含许多line_items的购物车.我希望每个订单项旁边都有一个"删除"按钮,点击该按钮后会从购物车中删除line_item.

我知道我可以使用button_to方法执行此操作,但我想使用form_for,因为我想同时更改line_item的父对象的属性(每个line_item也属于一个课程,我会喜欢告诉课程的父母,它不再在购物车中).

这是我使用form_for的代码:

<%= form_for(line_item, :method => :delete, :remote => true) do |f| %>
<%= f.submit :value => "Delete" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

ruby文档说只需添加:method =>:delete应该可以工作(http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for),但渲染的html不是完全正确.它仍然是

<input name="_method" type="hidden" value="put">
Run Code Online (Sandbox Code Playgroud)

但它应该是:

<input name="_method" type="hidden" value="delete">
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

forms methods ruby-on-rails

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

在测试之间擦拭Cassandra DB(Rspec)

我正在运行涉及到Cassandra数据库中数据的rspec测试。在两次测试之间擦除/清理数据库的最佳实践是什么?对于我的mongo数据,我正在使用DatabaseCleaner,并正在寻找与Cassandra相当的产品。我目前正在我的spec_helper.rb中执行以下操作,但是它非常慢,因此正在寻找更好的解决方案。谢谢!

config.before :each do
    ['column1', 'column2'].each do |name|
      begin
        $cassandra.drop_column_family(name)
      rescue
        next
      ensure
        cf = Cassandra::ColumnFamily.new(keyspace: 'db_name', name: name, comparator_type: 'TimeUUIDType')
        $cassandra.add_column_family(cf)
      end
    end
Run Code Online (Sandbox Code Playgroud)

ruby testing rspec cassandra

5
推荐指数
1
解决办法
653
查看次数

UTC时间重置为2000-01-01(ruby).如何防止重置时间?

我正在使用任务和电子表格gem将excel电子表格读入我的数据库.我正在读的其中一个栏目是"start_time".为此,我正在形成一个值数组,然后逐个传递每个数组值.

  cnum_array = [] # for start times
  sheet1.each 3 do |row|
    unless row[9].blank?
      time = Time.parse(row[9])
      cnum_array << time.utc
    end 
  end

  count = 0
  for course in Course.all
    course.update_attribute :start_time, cnum_array[count]
    count += 1
  end
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常.如果我在最后一个循环中插入"puts course.start_time"语句,则会打印出正确的时间.像这样:

  count = 0
  for course in Course.all
    course.update_attribute :start_time, cnum_array[count]
    puts course.start_time
    count += 1
  end
Run Code Online (Sandbox Code Playgroud)

这给了我正确的时间,例如"2012-01-23 15:30:00".

但是当我稍后查看课程时(例如通过我的控制台的Course.find(1).start_time),它给了我"2000-01-01 15:20:00".所以一天中的时间是正确的,但这一天本身可以追溯到2000-01-01.

有谁知道为什么会这样,我怎么能解决它?谢谢!

ruby time datetime utc

2
推荐指数
1
解决办法
711
查看次数

Postgresql"没有pg_hba.conf条目"错误

我正在为rails项目(我正在加入)设置我的本地postgresql数据库,并完成了以下操作:

  • 安装postgres
  • 添加/捆绑'pg'宝石
  • 创建名为"foobar"的db用户
  • 创建了一个名为"foobar_development"的数据库

rails应用程序附带了rake db:migrate任务.当我运行此任务时,我得到以下错误输出:

FATAL:  no pg_hba.conf entry for host "::1", user "foobar", database "foobar_development", SSL off
Run Code Online (Sandbox Code Playgroud)

我在以下位置找到了一个pg_hba.conf文件:

在/ usr /本地的/ var/Postgres的

这是pg_hba.conf文件的相关部分:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.

#local   replication     jimmyli …
Run Code Online (Sandbox Code Playgroud)

database postgresql ruby-on-rails postgresql-9.2

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

载波直接上没有update_attribute方法

所以我正在使用载波直接,我正处于需要更新上传器对象的"key"属性的位置.这是文档中的相关行:

上传到S3后,您需要使用与new_user_url对应的控制器操作中返回的密钥更新上传器对象:

@uploader.update_attribute :key, params[:key]
Run Code Online (Sandbox Code Playgroud)

问题是我的@uploader对象没有update_attribute方法.实际上,当我查看@uploader对象上的所有方法时,我看到的方法如key()和key =(),但没有update_attribute.

知道发生了什么事吗?我是否错过了为使update_attribute方法可用而需要执行的一些设置步骤?

ruby-on-rails amazon-s3 paperclip carrierwave

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

在Rails的活动管理中加载超时

我正在使用ActiveAdmin(https://github.com/gregbell/active_admin)进行Rails,并且我正在尝试加载用户模型的索引视图.这是我的app/admin/users.rb文件中的代码:

ActiveAdmin.register User do
    config.per_page = 10

    index :pagination_total => false do
    end
end
Run Code Online (Sandbox Code Playgroud)

我启用了分页,但看起来它仍在尝试加载所有用户,导致超时.如何让它一次只加载少数(例如10个)用户?

ruby-on-rails mongoid activeadmin

0
推荐指数
1
解决办法
764
查看次数