在 Rails 3 中,当您执行 activeRecord.save 时是事务提交还是方法退出时?
所以我想弄清楚的是 MySQL 是否是在保存后立即编写的!或者在我退出定义黑色后保存
def something
1000.times do
o = Order.new(:name => "Tomas")
o.save
end
end
Run Code Online (Sandbox Code Playgroud) 我有一个带有浮动列的表(我正在使用 MySQL、mysql2 gem,一切都是标准的)
create_table :some_table do |t|
t.float :amount
end
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我正在控制台上玩
a = SomeTable.new
a.amount = 9999.99
a.save!
#9999.99
a.amount
#9999.99
a.reload
a.amount
#9999.99
Run Code Online (Sandbox Code Playgroud)
一切还好
a = SomeTable.new
a.amount = 9999.999
a.save!
#9999.999
a.amount
#9999.999
a.reload
a.amount
#10000.00
Run Code Online (Sandbox Code Playgroud)
正如您所看到的 ruby (或rails)对数字进行四舍五入。
有人能解释一下这是为什么吗?……还是只有我一个人?
我正在用haml编写文本:
Blab bla for any questions contact us on me@foo.com.
Run Code Online (Sandbox Code Playgroud)
所以haml看起来像
%p
Blab bla for any questions contact us on
= mail_to 'me@foo.com'
.
Run Code Online (Sandbox Code Playgroud)
注意. 是ascii中的点,我也可以用= '.'(渲染字符串点)替换该行
但渲染的文字看起来像
Blab bla for any questions contact us on me@foo.com .
Run Code Online (Sandbox Code Playgroud)
区别在于最后点之前的空格
我想出的解决方案就是
%p
Blab bla for any questions contact us on
= mail_to('me@foo.com') + '.'
Run Code Online (Sandbox Code Playgroud)
这只是我正在寻找最佳实践:) thx
假设我有与此类似的多态
| document_id | owner_type | owner_id |
| 1 | Client | 1 |
| 1 | Client | 2 |
| 2 | User | 1 |
Run Code Online (Sandbox Code Playgroud)
我知道我会调用查询来寻找owner_type和owner_type+owner_id
SELECT * FROM document_name_ownerships WHERE owner_type = 'Client`
SELECT * FROM document_name_ownerships WHERE owner_type = 'Client` and owner_id = 1
Run Code Online (Sandbox Code Playgroud)
让我们忽略如何索引document_id 我想知道在此 SQL 场景中索引所有者列的最佳方式(性能)是什么
解决方案1:
CREATE INDEX do_type_id_ix ON document_ownerships (owner_type, owner_id)
Run Code Online (Sandbox Code Playgroud)
这样我就只有一个适用于这两种情况的索引
解决方案2:
CREATE INDEX do_id_type_ix ON document_ownerships (owner_id, owner_type)
CREATE INDEX do_type_ix …Run Code Online (Sandbox Code Playgroud) 我发现当我使用Prism.js语法highliting与Turbolinks组合突出显示行为奇怪.
当我加载第一次突出显示语法的页面时,Prism.js不会被触发,也没有突出显示任何内容.重新加载同一页后,Prism将启动并高亮显示代码.除非我更改位置(转到root)并返回到它(在相同的场景之后),否则页面将在此之后保持突出显示
当我从清单文件中删除Turbolinks时(application.js)一切正常(当然Turbolinks没有做任何事情)
我不想用
= link_to "Foo", blogs_path(blog), "data-no-turbolink" => true
Run Code Online (Sandbox Code Playgroud)
因为我必须在每一个链接上使用它(每个博客都会有一些代码高亮),因此根本没有任何关于turbolinks的观点
我试图使用Turbolings事件,page:change但我对纯JavaScript很糟糕(Prism.js是纯JS和我是jQuery junky)
所以任何人都知道如何告诉Turbolinks触发Prism.js语法高位?
尝试安装
gem install json -v '1.8.2'
Run Code Online (Sandbox Code Playgroud)
(..或bundle install 带有gem 'json', '1.8.2'in Gemfile)
...在Ubuntu 14.04 VM上,我得到了:
Building native extensions. This could take a while...
ERROR: Error installing json:
ERROR: Failed to build gem native extension.
/home/deploy/.rbenv/versions/2.1.5/bin/ruby extconf.rb
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling generator.c
In file included from /home/deploy/.rbenv/versions/2.1.5/include/ruby-2.1.0/ruby/ruby.h:29:0,
from /home/deploy/.rbenv/versions/2.1.5/include/ruby-2.1.0/ruby.h:33,
from ../fbuffer/fbuffer.h:5,
from generator.c:1:
/home/deploy/.rbenv/versions/2.1.5/include/ruby-2.1.0/ruby/defines.h:26:19: fatal error: stdio.h: No such file or directory
#include <stdio.h>
^
Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的.bashrc .gitconfig和其他有用的配置放到github上(因为我想分享一些有价值的代码片段),但问题是我不想分享某些"关于我的有价值的信息" ,
那么有没有办法告诉git忽略文件的某些模式或行(例如.gitignore?)
注意:我想知道如何进行我的bashrc共享(我将保留bashrc公共事物并将私有移动到我不会分享的bashprofile)但我有点想知道如何共享我的gitconfig(有一些非常好的别名)
谢谢
结合Facebook登录(假设我将使用Omniauth gem)和电子邮件+密码登录的最佳做法是什么?
我看了几个博客,看过Railscasts,我知道每个人都在使用Devise gem和Omniauth.但我正在寻找一些不同的观点.
子问题:
我正在考虑从头开始创建电子邮件+密码注册(不使用任何宝石,让它保持快速和轻便)所以你有什么建议吗?或者,如果你有特定的宝石,请让它快速.
你对Oauth2宝石(替代Omniauth)处理Facebook的身份验证有什么其他建议吗?
对不起,我在这里问这个基本问题,但我没有找到很多答案(我发现大部分都是基于Devise)
使用Sidekiq对新的Ruby on Rails应用程序进行Newrelic监视,还没有实现太多逻辑,也没有太多流量,这表明Redis在brpop操作上花费了很长时间(大约2s-3s)。
这是为什么?
在性能方面有问题吗?
Given application is looping through many fields
Why is Application making multiple SQL calls even if I memoize the object
要么
Given application is looping through many items
How to prevent application doing expensive calculation on every item
注意:我们使用http://www.eq8.eu/blogs/41-policy-objects-in-ruby-on-rails中描述的策略视图对象
class WorksController < ApplicationController
def index
@works = Work.all
end
end
<% @works.each do |work| %>
<%= link_to("Delete work", work, method: delete) if work.policy.able_to_delete?(current_user: current_user) %>
<% end %>
class Work < ActiveRecord::Base
has_many :comments …Run Code Online (Sandbox Code Playgroud)