小编Vic*_*tor的帖子

性能问题:使用"link_to"还是"a"?

对于不需要太多控制器或选项的链接,使用ahtml标签会更好吗?link_to不必要地使用rails标签会对性能产生任何影响吗?

谢谢.

ruby-on-rails

4
推荐指数
1
解决办法
1789
查看次数

在 MySQL InnoDB 中替换为表非常慢

使用 MySQL(准确地说是 MariaDB)。我有以下脚本需要每隔一天运行一次来​​更新我的数据库,但它慢得令人无法忍受。要更新的每个表都需要运行数小时。这是一个shell脚本:

CMD_MYSQL="${MYSQL_DIR}mysql  --local-infile=1 --default-character-set=utf8 --protocol=${MYSQL_PROTOCOL} --port=${MYSQL_PORT} --user=${MYSQL_USER} --pass=${MYSQL_PASS} --host=${MYSQL_HOST} --database=${MYSQL_DB}"

### Update MySQL Data ###
## table name are lowercase
tablename=`echo $FILE | tr "[[:upper:]]" "[[:lower:]]"`
echo "Uploading ($FILE) to ($MYSQL_DB.$tablename) with REPLACE option..."
## let's try with the REPLACE OPTION
$CMD_MYSQL --execute="LOAD DATA LOCAL INFILE '$FILE.txt' REPLACE INTO TABLE $tablename CHARACTER SET utf8 FIELDS TERMINATED BY '|' IGNORE 1 LINES;"
## we need to erase the records, NOT updated today
echo "erasing old records from …
Run Code Online (Sandbox Code Playgroud)

mysql mariadb

4
推荐指数
1
解决办法
2106
查看次数

思考Sphinx索引方法之间的区别

想知道这些之间有什么区别:

indexes shop.created_at, :as =>created_at
has shop(:created_at), :as => :created_at
has shop.created_at, :as => :created_at
Run Code Online (Sandbox Code Playgroud)

谢谢.

ruby-on-rails thinking-sphinx

3
推荐指数
1
解决办法
710
查看次数

延迟作业 - 销毁对象后无法为非持久化记录创建作业

Rails 4 和 delay_job 4.1.2。我试图在销毁评论后延迟重新计算总体评分,但显然是因为在销毁评论对象后,评论对象没有 ID。因此,每次尝试销毁对象后,它都会尝试创建延迟作业,但会引发此错误:

ArgumentError (job cannot be created for non-persisted record: 
#<Review id: 44, review: "Bad", rating: 1, reviewable_id: 2, 
reviewable_type: "Spot", user_id: 1, created_at: "2016-05-30 17:13:29", 
updated_at: "2016-05-30 17:13:29">):
  app/controllers/reviews_controller.rb:40:in `destroy'
Run Code Online (Sandbox Code Playgroud)

我有以下代码:

# reviews_controller.rb
class ReviewsController < ApplicationController
  def destroy
    review.destroy
    flash[:success] = t("reviews.destroy.success")
  end
end

# review.rb
class Review < ActiveRecord::Base
  after_destroy :calculate_overall_rating

  def calculate_overall_rating
    if number_of_reviews > 0
      reviewable.update_attribute(:overall_rating, overall_rating)
    else
      reviewable.update_attribute(:overall_rating, 0)
    end
  end
  handle_asynchronously :calculate_overall_rating
end
Run Code Online (Sandbox Code Playgroud)

值得注意的是,calculate_overall_rating不需要Review对象。

如果我删除 …

ruby-on-rails delayed-job

3
推荐指数
1
解决办法
1316
查看次数

比较并查看paper_trail的变化

我们知道paper_trail有权撤消变更.但有没有办法看到更改是什么,以便我们知道要撤消哪个版本?更好的是,我们可以并排比较这些变化.

谢谢!

versioning ruby-on-rails

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

磁盘IO速率高

我的rails应用程序总是达到我在Linode的VPS设置的磁盘I/O速率的阈值.它设置为3000(我从2000年开始),每隔一小时左右,我会得到一个通知,它达到4000-5000 +.

我可以使用哪些方法来最小化磁盘IO速率?我主要使用Sphinx(Thinking Sphinx插件)和纬度和经度距离搜索.

有哪些方法可以避免?

我正在使用Rails 2.3.11和MySQL.

谢谢.

ruby sql ruby-on-rails

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

Ruby中的Comibine条件

有没有更好的方法来写这个?

if a == 'new' || a == 'create'
  ...
else
  ...
end
Run Code Online (Sandbox Code Playgroud)

而不是检查a两次,我想我可以将第一行与一行结合起来a.我正在寻找类似的东西:

if a == ['new' || 'create']
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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

在Git中连接分支

当我使用gitk检查我的分支时,我发现了以下内容:

Git连接分支机构

我创建pretty_url,切换到它,工作的东西,提交,然后切换到master分支(这是干净的),然后运行git merge pretty_url,并检查gitk,并找到了这个.

我确定这不合适,可能master不干净.我怎样才能解决这个问题?

git gitk

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

Rails each_with_index降序索引中的顺序

使用Rails 3.2和Ruby 1.9.当我们的代码@objects.each_with_index do |object, i|,i通常与启动0,1,2.等等

假设我们有@objects = [A, B, C, D, E],输出是:

<% @objects.each_with_index do |object, i| %>
  <%= i %> - <%= object %><br>
<% end %>

# output
0 - A
1 - B
2 - C
Run Code Online (Sandbox Code Playgroud)

我想要这样做:

# output
2 - A
1 - B
0 - C
Run Code Online (Sandbox Code Playgroud)

这该怎么做?

ruby ruby-on-rails

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

Rails 排序或排序查询很慢

使用 Rails 3.2、Ruby 1.9、will_paginate。我有 100,000 条记录,并测试了以下查询:

# 1000+ms to load
@shops = Shop.where(:shop_type => @type).paginate(:include => :photos, :page => params[:page], :per_page => 25, :order => 'created_at DESC')

# 1000+ms to load
@shops = Shop.paginate(:include => :photos, :page => params[:page], :per_page => 25, :order => 'created_at DESC')

# 1000+ms to load
@shops = Shop.order('created_at DESC').limit(25)

# 1+ms to load
@shops = Shop.paginate(:include => :photos, :page => params[:page], :per_page => 25)
Run Code Online (Sandbox Code Playgroud)

我注意到这个order选项非常慢。测试结果表明这will_paginate不是问题。

order我应该如何更改它以便可以加快查询速度。

performance activerecord pagination ruby-on-rails

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