小编Sim*_*tti的帖子

用于清除Rails中基于cookie的会话存储的命令

我经常想清除Rails中的会话存储,特别是默认的基于cookie的会话存储.有些网站似乎暗示了这一点

rake tmp:sessions:clear
Run Code Online (Sandbox Code Playgroud)

完成这项任务,但似乎没有.清除基于cookie的会话存储的正确方法是什么?

cookies session ruby-on-rails

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

Rails where子句超过两个表

我在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)

有人可以给我一个提示

ruby ruby-on-rails where-clause

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

rails 3和rubyzip 1.0.0 uninitialized constant Zip :: ZipFile

我试图打开一个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)

检查了所有文档并尝试了很多组合后,我仍然感到非常难过.

任何人都可以告诉我为什么这不起作用?

谢谢.

ruby-on-rails rubyzip

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

Rails,jQuery,.js.erb文件,JS不是由浏览器执行的

我正在尝试使用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.

javascript ruby jquery ruby-on-rails erb

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

何时首选使用标准索引而不是MongoDB中的背景索引?

MongoDB 1.6允许定义要作为后台操作运行的索引.后台索引似乎有点慢,但不会阻止其他写入/读取操作,因此当您需要在已填充某些数据的数据库上创建索引时,它们似乎是最佳选择.

但是,即使使用空集合,后台索引也允许您在将来重新索引集合,而不必担心并发请求.

乍一看,我没有看到使用传统索引优于背景索引的任何真正优势.但是,因为MongoDB背景索引不是默认选项,所以我想知道是否有任何我没有考虑过的权衡.

何时首选使用标准索引而不是MongoDB中的背景索引.

database indexing mongodb

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

过去几周获取Heroku日志

我试图从heroku获取过去几周的生产日志,但是当我执行heroku日志时,它只返回几行显示今天的生产日志.

有没有办法在过去几周获得heroku日志?

谢谢.

logging heroku

10
推荐指数
2
解决办法
5330
查看次数

mongoid中的N + 1问题

我正在使用Mongoid在Rails中使用MongoDB.

我正在寻找的是积极的记录include.目前我没有在mongoid orm中找到这样的方法.

任何人都知道如何在mongoid或mongomapper中解决这个问题,这是另一个很好的选择.

ruby-on-rails mongodb mongomapper mongoid

10
推荐指数
4
解决办法
6188
查看次数

关于此Rails关联案例中的"<<"运算符

我是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_manyComponent类的关联或者是否可以使用" << "添加新关联,即使关联未在类中明确定义?CarCar

ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

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

查询rails中的日期范围

我有一个范围来查询今天的电话.基于范围,我用它来计算今天的通话量.

我的日期以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提取范围,包括昨天的呼叫(昨天如果用当地时区格式化).

如何在两次之间查询以获得正确的输出?我有点迷失在这里.

timezone activerecord ruby-on-rails ruby-on-rails-3

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

如何在ActionMailer的after_action过滤器中获取操作的名称

在下面的类中,如何获得当前动作名称(即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-on-rails actionmailer

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