我想在我的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)
怎么了?我该怎么办?
我正在尝试在查看个人资料时向用户发送邮件.即,当用户点击特定联系人的节目时,该联系人将收到关于个人资料视图的通知.我没有得到任何错误.但是我触发了邮件有一些延迟.它也可以在控制台中正常工作.但邮件没有发送给收件人.
这是我到目前为止所尝试的.
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 …
我有一个可能是零的对象.在下一行中,我根据某些条件动态获取对象的任何一个参数.我正在使用带有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)
有什么帮助?!
我正在尝试在新工作站中设置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) 我想从今天的数据库中获取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)
请有人解释我的代码中发生了什么?
我是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)
但这没有做任何事情.我哪里错了?