我经常想清除Rails中的会话存储,特别是默认的基于cookie的会话存储.有些网站似乎暗示了这一点
rake tmp:sessions:clear
Run Code Online (Sandbox Code Playgroud)
完成这项任务,但似乎没有.清除基于cookie的会话存储的正确方法是什么?
我在rails应用程序中有以下模型
category => company => store
Run Code Online (Sandbox Code Playgroud)
商店有belongs_to公司,公司有belongs_to类别关系.现在我想在商店对象上使用where方法来检索同一类别中的所有商店.
我想要这样的东西
@stores.nearbys(5).where("stores.company.category_id = xxx")
Run Code Online (Sandbox Code Playgroud)
有人可以给我一个提示
我试图打开一个docx文件并使用rubyzip 1.0.0和rails 3写回来.
在我的gemfile中我有:
gem 'rubyzip'
Run Code Online (Sandbox Code Playgroud)
我正在运行的代码是;
module Look
class Generator
def initialize(item)
doc = Nokogiri::XML.parse(item.to_xml)
xslt = Nokogiri::XSLT(File.read("<path_to_xslt_file>.xslt"))
@outxml=xslt.transform(doc)
zip = Zip::ZipFile.open("<path_to_docx_file>.docx")
@outxml
end
end
end
Run Code Online (Sandbox Code Playgroud)
虽然正确创建了@outxml(我可以手动将其添加到docx文件并查看结果),但我甚至无法开始创建zip文件,因为这...
uninitialized constant Zip::ZipFile
Run Code Online (Sandbox Code Playgroud)
检查了所有文档并尝试了很多组合后,我仍然感到非常难过.
任何人都可以告诉我为什么这不起作用?
谢谢.
我正在尝试使用jQuery,一切都很棒,直到现在,当我尝试渲染部分并将其附加到div时.以下是我设置的方法:
我有一个响应js的动作:
def index
@objects = Object.find(:all)
respond_to do |format|
format.js
end
end
Run Code Online (Sandbox Code Playgroud)
还有一个名为index.js.erb的模板,里面有一些javascript:
alert("hello world");
Run Code Online (Sandbox Code Playgroud)
Firebug返回"text/javascript"响应,其中包含:
alert("hello world");
Run Code Online (Sandbox Code Playgroud)
但是没有出现警报窗口,也没有任何其他JavaScript工作.我检查了http://railscasts.com/episodes/136-jquery 并且或多或少跟随.我尝试了其他一些东西,比如使用.rjs而不是.erb并将它放在我的模板中:
page.alert("hello world");
Run Code Online (Sandbox Code Playgroud)
但我得到了相同的结果,浏览器从不执行JS.
任何人都知道为什么JavaScript没有被执行?
我正在运行Rails 2.3.4.
MongoDB 1.6允许定义要作为后台操作运行的索引.后台索引似乎有点慢,但不会阻止其他写入/读取操作,因此当您需要在已填充某些数据的数据库上创建索引时,它们似乎是最佳选择.
但是,即使使用空集合,后台索引也允许您在将来重新索引集合,而不必担心并发请求.
乍一看,我没有看到使用传统索引优于背景索引的任何真正优势.但是,因为MongoDB背景索引不是默认选项,所以我想知道是否有任何我没有考虑过的权衡.
何时首选使用标准索引而不是MongoDB中的背景索引.
我试图从heroku获取过去几周的生产日志,但是当我执行heroku日志时,它只返回几行显示今天的生产日志.
有没有办法在过去几周获得heroku日志?
谢谢.
我正在使用Mongoid在Rails中使用MongoDB.
我正在寻找的是积极的记录include.目前我没有在mongoid orm中找到这样的方法.
任何人都知道如何在mongoid或mongomapper中解决这个问题,这是另一个很好的选择.
我是Ruby on Rails的新手.在Rails应用程序中,我看到了一些如下代码:
在模型中,有一个类Car:
class Car < ActiveRecord::Base
...
end
Run Code Online (Sandbox Code Playgroud)
在控制器中,有一个方法" some_method "
class CarsController < ApplicationController
def some_method
@my_car = Car.new()
#What does the following code do?
#What does "<<" mean here?
@my_car.components << Component.new()
end
end
Run Code Online (Sandbox Code Playgroud)
我有三个问题要问:
1.在控制器的代码中@my_car.components << Component.new(),它做了什么?什么<<意思?
2.在Ruby-On-Rails或Ruby中是否还有其他"<<"用法?
3.如果使用" << " ,类是否Car必须显式定义has_many与Component类的关联或者是否可以使用" << "添加新关联,即使关联未在类中明确定义?CarCar
我有一个范围来查询今天的电话.基于范围,我用它来计算今天的通话量.
我的日期以UTC格式存储,但rails会转换为我当地的时区.我想要做的是在今天00:00到23:59之间找到所有电话.
范围:
scope :today, where("DATE(transfer_date) BETWEEN ? AND ?", Time.zone.now.utc.beginning_of_day, Time.zone.now.utc.end_of_day)
Run Code Online (Sandbox Code Playgroud)
irb输出:(因UTC而捕获的呼叫)
irb(main):010:0> Call.last.transfer_date
Call Load (0.9ms) SELECT "calls".* FROM "calls" ORDER BY "calls"."id" DESC LIMIT 1
=> Sun, 07 Oct 2012 19:45:00 CDT -05:00
irb(main):011:0>
irb(main):011:0> Call.last.transfer_date.utc
Call Load (1.3ms) SELECT "calls".* FROM "calls" ORDER BY "calls"."id" DESC LIMIT 1
=> 2012-10-08 00:45:00 UTC
Run Code Online (Sandbox Code Playgroud)
我正在试图弄清楚如何只查询今天00:00到23:59之间的通话.到目前为止尝试使用和不使用utc,zone等的范围都不起作用.它一直根据UTC提取范围,包括昨天的呼叫(昨天如果用当地时区格式化).
如何在两次之间查询以获得正确的输出?我有点迷失在这里.
在下面的类中,如何获得当前动作名称(即email_confirmation,password_reset)在一侧after_action回调add_mandril_headers?
class UserMailer < ActionMailer::Base
after_action :add_mandril_headers
def email_confirmation(user)
mail(..)
end
def password_reset(user)
mail(..)
end
private
# how to get the action name?
def add_mandrill_headers
headers['X-MC-Tags'] = [mailer_name, action_name].join('_');
end
end
Run Code Online (Sandbox Code Playgroud) ruby ×3
mongodb ×2
actionmailer ×1
activerecord ×1
cookies ×1
database ×1
erb ×1
heroku ×1
indexing ×1
javascript ×1
jquery ×1
logging ×1
mongoid ×1
mongomapper ×1
rubyzip ×1
session ×1
timezone ×1
where-clause ×1