小编Sug*_*nya的帖子

Ole :: Storage :: FormatError:OLE2签名无效

我想在我的Rails应用程序中读取Excel文件.

这是我打开Excel文件并阅读它的方法.

doc = Spreadsheet.open('./try.xls', "r")
sheet = doc.worksheet 0
sheet.each do |row|
array_rows << row.to_a
end
Run Code Online (Sandbox Code Playgroud)

我有它作为rake任务.当我尝试读取此文件时,它会抛出一个错误.

Ole::Storage::FormatError: OLE2 signature is invalid
Run Code Online (Sandbox Code Playgroud)

怎么了?我该怎么办?

excel ruby-on-rails

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

Action :: Mailer不向收件人发送邮件

我正在尝试在查看个人资料时向用户发送邮件.即,当用户点击特定联系人的节目时,该联系人将收到关于个人资料视图的通知.我没有得到任何错误.但是我触发了邮件有一些延迟.它也可以在控制台中正常工作.但邮件没有发送给收件人.

这是我到目前为止所尝试的.

mailer.rb:

class CustomerSupport < ActionMailer::Base
    def customer_support(contact) 
     mail :to => contact.email, :from => "sugukvs92@gmail.com", :subject => "profileviews"       
  end
  end
Run Code Online (Sandbox Code Playgroud)

为setup_mail.rb

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
   :address => "smtp.gmail.com",
   :port => 587,
   :domain => "gmail.com",
   :user_name => "sugukvs92",
   :password => "**************",
   :authentication => "plain",
   :enable_starttls_auto => true
}
Run Code Online (Sandbox Code Playgroud)

controller.rb

def show
  @contact = Contact.find(params[:id])
    CustomerSupport.customer_support(@contact).deliver

end
Run Code Online (Sandbox Code Playgroud)

我是否需要添加任何gem才能实现此功能?

development.log

在2014-07-16 10:48:07开始获取"/ contacts/3"for 127.0.0.1 +0530由ContactsController处理#show as HTML参数:{"id"=>"3"} [1m [36mContact Load(在0.2ms)[0米[1mSELECT contacts.*FROM contacts WHERE contacts.id= 3 …

actionmailer ruby-on-rails-4

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

Rails - 混合'发送'和'尝试'

我有一个可能是零的对象.在下一行中,我根据某些条件动态获取对象的任何一个参数.我正在使用带有if else块的object.try().现在我想使用send()以便我可以实现一些有效的代码.

form_name = 'parent' ( received from argument )
mes_record = Mark.first ( this can be nil )

if x == condition_1
    mes_record.parent
elsif x == condition_2
    mes_record.brother
elsif x == condition_3
    mes_record.sister
else
    mes_record.father
end
Run Code Online (Sandbox Code Playgroud)

现在我想避免使用if else梯子并使用send.

 if mes_record.present?
      mes_record.send("#{form}")
 else
      mes_record = 'not available'
 end
Run Code Online (Sandbox Code Playgroud)

我正在寻找类似尝试的东西.

   mes_record.try("dynamically substitute the attribute name here.") || 'not available'
Run Code Online (Sandbox Code Playgroud)

有什么帮助?!

attributes ruby-on-rails dynamic

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

无法运行迁移.表不存在

我正在尝试在新工作站中设置Rails应用程序.但是当我尝试运行迁移时,它会抛出错误.

**rake aborted!
ActiveRecord::StatementInvalid: Mysql2::Error: Table 'test_rb.roles' doesn't exist: SHOW FULL FIELDS FROM `roles`**
/home/suganya/.rvm/gems/ruby-2.1.1@rb/gems/activerecord-3.2.21/lib/active_record        /connection_adapters/abstract_mysql_adapter.rb:245:in `query'
/home/suganya/.rvm/gems/ruby-2.1.1@rb/gems/activerecord-3.2.21/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:in `block in execute'
 /home/suganya/.rvm/gems/ruby-2.1.1@rb/gems/activerecord-3.2.21/lib/active_record/connection_adapters/abstract_adapter.rb:280:in `block in log'
/home/suganya/.rvm/gems/ruby-2.1.1@rb/gems/activesupport-3.2.21/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
 /home/suganya/.rvm/gems/ruby-2.1.1@rb/gems/activerecord-3.2.21/lib/active_record/connection_adapters/abstract_adapter.rb:275:in `log'
/home/suganya/.rvm/gems/ruby-2.1.1@rb/gems/activerecord-3.2.21/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:in `execute'
/home/suganya/.rvm/gems/ruby-2.1.1@rb/gems/activerecord-3.2.21/lib/active_record/connection_adapters/mysql2_adapter.rb:213:in `execute'
/home/suganya/.rvm/gems/ruby-2.1.1@rb/gems/activerecord-3.2.21/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:259:in `execute_and_free'
 /home/suganya/.rvm/gems/ruby-2.1.1@rb/gems/activerecord-3.2.21/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:426:in `columns'
 /home/suganya/.rvm/gems/ruby-2.1.1@rb/gems/activerecord-3.2.21/lib/active_record/connection_adapters/schema_cache.rb:12:in `block in initialize'
Run Code Online (Sandbox Code Playgroud)

我不知道我做错了什么?

 /home/suganya/academics/reportbee/app/models/constant_cache.rb:4:in `caches_constants'
  /home/suganya/academics/reportbee/app/models/role.rb:14:in `<class:Role>'
 /home/suganya/academics/reportbee/app/models/role.rb:1:in `<top (required)>'
Run Code Online (Sandbox Code Playgroud)

在Role.rb中

 class Role < ActiveRecord::Base
     has_many :allotments
     has_many :users, :through => :allotments

      serialize :possible_display_names, Array

     validates :name, presence: true, uniqueness: true

   scope :accessible, -> { where( :accessible => true ) } …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails database-migration setup-project

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

获取今天在Rails中创建的所有记录

我想从今天的数据库中获取create_at的所有记录.但是,当我这样做

Model.where('DATE(created_at) = ?',Date.today)
Run Code Online (Sandbox Code Playgroud)

它只返回今天创建的最后一条记录.我有created_at的3条记录

2015-03-03 11:38:31
2015-03-03 11:59:00
2015-03-03 11:33:04
Run Code Online (Sandbox Code Playgroud)

.但它只返回'2015-03-03 11:38:31'这个created_at日期的记录.

另请参阅如何删除今天创建的所有记录?,获取今天创建的所有行.我想知道为什么会这样?也试过了

 Model.where("DATE(created_at) = ?",Date.today)
Run Code Online (Sandbox Code Playgroud)

 Tracking::TrackingLogin.where("created_at >= ?", Time.zone.now.beginning_of_day)
Run Code Online (Sandbox Code Playgroud)

请有人解释我的代码中发生了什么?

ruby-on-rails date

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

宝石不工作时的滑轨

我是Rails中cron工作的新手,我想用'随时'的宝石来做.这是我到目前为止所尝试的.

的Gemfile

gem 'whenever'
Run Code Online (Sandbox Code Playgroud)

Mailer.rb

 def new_test
    Rails.logger.debug '===========whenever is working================'
 end
Run Code Online (Sandbox Code Playgroud)

Schedule.rb

every 1.minutes do
  runner 'Mailers.new_test'
end
Run Code Online (Sandbox Code Playgroud)

但这没有做任何事情.我哪里错了?

cron ruby-on-rails whenever

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