小编lul*_*ala的帖子

构建has_one关联或更新的更好方法(如果存在)

我的折扣类有一个sales_period.我想编写一个方法,可以在它不存在时构建这个关联,或者在它存在时更新它.目前我正在编写以下条件.

class Discount < ActiveRecord::Base
  has_one :sales_period

  def fetch_period
    end_date = ...
    if sales_period.nil?
      build_sales_period( end: end_date )
    else
      sales_period.end = end_date
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点,类似于find_or_create

ruby-on-rails

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

Rails:在after_create中设置属性

我希望ActiveRecord使用回调自动设置一些DB字段.

class Product < ActiveRecord::Base
   after_create :set_locale
   def set_locale
      self.locale = I18n.locale
   end
end
Run Code Online (Sandbox Code Playgroud)

在./script/console我做

p = Product.create
p
Run Code Online (Sandbox Code Playgroud)

字段p.locale未设置.我做错了什么?

activerecord ruby-on-rails callback

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

Redis - 数据大小可以大于内存大小吗?

我对Redis很新,在使用它之前,我想学习一些重要的(就我而言)细节.所以....

Redis正在使用RAM和HDD来存储数据.RAM用作快速读/写存储,HDD用于使数据持久.当Redis启动时,它会将所有数据从HDD加载到RAM,或者只将经常查询的数据加载到RAM中?如果我在HDD上有500Mb Redis存储怎么办,但我只有100Mb或Redis的RAM.我在哪里可以阅读它?

谢谢

PS:抱歉我的英文

redis

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

如何在MySql中将bool转换为int

我是MySql的新手.所以我不知道很多东西,比如Casting of data types.如何在MySql中将bool转换为int.以及如何在MySql中将十进制转换为Int.

mysql

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

如何在ruby中访问类方法和实例方法?

通过搜索一些博客和文章,我发现Ruby中的每个类本身都是一个实例Class.类方法和实例方法之间的差别是什么,ruby允许创建对象的对象?

我尝试做这样的事情,但仍然无法理解

str = Class.new(String)
=> #<Class:0xb5be1418>

my_str = str.new()
=> ""

my_str = str.new("hello")
=> "hello"

my_str.class
=> #<Class:0xb5be1418>

str.class
=> Class
Run Code Online (Sandbox Code Playgroud)

现在完全混淆所以告诉我这个

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

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

Rails I18n的CSS文件

我正在尝试将我的网站国际化,有一件事是为不同的语言使用不同的字体大小.还需要替换一些文本图像.

我认为唯一的方法是在公共文件夹中添加其他特定于语言环境的CSS文件,并根据我视图中的语言环境加载它们.这可以避免资产管道编译那些特定的CSS文件.但是我想知道是否有更好的方法来做到这一点?

css ruby-on-rails internationalization ruby-on-rails-3 asset-pipeline

6
推荐指数
2
解决办法
3911
查看次数

如何覆盖ajax = false,以便切换到加载的dom页面(如果存在)

我有一些项目htmls,每个项目都包含一个JQM页面.我还有一个索引页面.它是一个多JQM页面的html,每个JQM页面都是列出项目的类别.

  index.html                  item1.html           item2.html
  +------------------+        +--------+--------+  +--------
  |+-------+         |     +--|Cat.    |    Next|->|Cat.
  ||.cont- |         |     |  +--------+--------+  |--------
  ||ent    |+-------+|<----+  |                 |  |
  |+-------+|#cat1  ||        |                 |  |
  |         |       ||        |bla bla bla      |  |bla bla
  |         |link1+---------->|                 |  |
  |         |link2  ||        |                 |  |
  |         +-------+|        +-----------------+  +--------
  |+-------++-------+|
  ||#cat2  ||#cat3  ||
  ||       ||       ||
  ||link4  ||link3  ||
  ||       ||       ||
  |+-------++-------+|
  +------------------+
Run Code Online (Sandbox Code Playgroud)

目前我可以从索引链接到项目,平滑的ajax加载.但是我意识到如果我想从项目链接到索引#cat1,我需要使用data-ajax='false'索引是一个多页面的html.(我无法使用,data-rel='back'因为上一页并不总是index.html).

如果我使用ajax='false',如果我经常在列表和项目之间切换(每次切换回列表是完全重新加载),我将失去平滑过渡.例如:

-full-load-> index#cat1 -ajax-load-> item2 -full-load(再次) - …

javascript jquery jquery-mobile

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

Heroku上用于登台服务器的不同robots.txt

我在Heroku上有分期和制作应用程序.

对于crawler,我设置了robots.txt文件.

之后我收到了谷歌的消息.

尊敬的网站管理员:您网站的主机名https://www.myapp.com/与SSL证书中的任何"主题名称"都不匹配,即:
*.herokuapp.com
herokuapp.com

谷歌机器人读取我的临时应用程序上的robots.txt并发送此消息.因为我没有设置任何防止抓取工具读取文件的内容.

所以,我正在考虑的是在暂存和生产之间更改.gitignore文件,但我无法弄清楚如何做到这一点.

实现这个的最佳实践是什么?

编辑

我搜索了这篇文章并发现了这篇文章http://goo.gl/2ZHal

本文说要设置基本的Rack身份验证,您不需要关心robots.txt.

我不知道基本的auth可以阻止谷歌机器人.似乎这个解决方案更好地操纵.gitignore文件.

ruby-on-rails heroku gitignore

6
推荐指数
2
解决办法
3610
查看次数

在模型创建期间Rails未知属性

我有一条错误消息 - "unknown attribute:news_id"但我无法理解问题所在.我有新闻控制器,我想为每条新闻创建评论.我希望有人可以帮助我.提前致谢.

schema.rb

create_table "comments", :primary_key => "ID", :force => true do |t| 
  t.integer "Author_ID" 
  t.integer "News_ID", :null => false 
  t.string "Content", :limit => 500, :null => false 
  t.datetime "Date", :null => false 
end
Run Code Online (Sandbox Code Playgroud)

评论模型:

belongs_to :news
Run Code Online (Sandbox Code Playgroud)

新闻模式:

has_many :comments
Run Code Online (Sandbox Code Playgroud)

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

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

做Rails sql查询缓存命中数据库?

在我的Rails应用程序中,我在服务器日志中的SQL查询期间看到了一些"缓存":

[DEBUG] CACHE(0.0ms)SELECT regions.*FROM regionsWHERE regions.name='NY'LIMIT 1

我想知道这些缓存是由Rails还是由MySQL本身完成的?换句话说,这些缓存的查询是否会触及数据库层?

ruby-on-rails

6
推荐指数
2
解决办法
1450
查看次数