小编Tal*_*boy的帖子

Rails控制台给我一个"wirble"错误

rails-project git:creating-models ? rails console
Loading development environment (Rails 3.2.1)
Couldn't load Wirble: cannot load such file -- wirble
irb(main):001:0> 
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索,没有任何相关的东西出现..我不知道这是否有帮助

rails-project git:creating-models ? irb
>> puts $:
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/gems/1.9.1/gems/wirble-0.1.3/lib
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/site_ruby/1.9.1
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/site_ruby/1.9.1/x86_64-darwin11.2.0
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/site_ruby
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/vendor_ruby/1.9.1
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/vendor_ruby/1.9.1/x86_64-darwin11.2.0
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/vendor_ruby
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/x86_64-darwin11.2.0
Run Code Online (Sandbox Code Playgroud)

Ruby版本:

ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0]
Run Code Online (Sandbox Code Playgroud)

我正在使用OSX,而​​不是Ubuntu(在我看到的每个谷歌搜索中似乎都是这个问题的根源)

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

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

如果使用first_or_create"首先"或"创建"某些内容,我如何区分

我正在尝试使用此声明:

@vote = Vote.where(:resource_id => params[:id], :user_id => current_user.id).first_or_create(:value => 1)
Run Code Online (Sandbox Code Playgroud)

这是一个upvote或downvote.如果该行不存在于DB中,则应该创建它(如果它们从未在该帖子上投票),则应该使用-1,0,1来修改该值.

如果他们第二次点击upvote,它需要"撤销"投票并将行"值"设置为0而不是1.同样的事情发生在downvote但是现在只是upvote函数.

我在调试这个语句时遇到了麻烦.我需要基本上区分它是保存的记录还是创建的记录.如果我把:

@vote = Vote.where(:resource_id => 25, :user_id => 1)
@vote.exists?
Run Code Online (Sandbox Code Playgroud)

我明白了 true

但如果我把它...(和记录存在,它只是在上面工作)..

@vote = Vote.where(:resource_id => 25, :user_id => 1).first_or_create(:value => 1)
@vote.exists?
Run Code Online (Sandbox Code Playgroud)

我得到... NoMethodError:未定义的方法`存在?' 为#

在查看两个对象的类之后,我看到一个是"投票",一个是"ActiveRecord :: Relation".

我的最终目标是以某种方式重构这个(主要是它检查投票值是否已经为1的部分,如果这样设置为零(撤消投票),否则将其置于1

这是我开始尝试使用first_or_create重构之前的代码.它漫长而丑陋.

 if @vote.exists?
      # Check if they have already voted
      if @vote.first.value == 1
        @vote.first.value = 0
      else
        @vote.first.value = 1
      end
      flash[:notice] = "previous vote modified"
      @vote.first.save
    else
      # Create a new Vote instance, save …
Run Code Online (Sandbox Code Playgroud)

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

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

为投票系统搞清楚/重构这个if/else

我很难在没有巨大的if/else结构的情况下以最佳方式概念化如何做到这一点.我知道我可以这样做,但我正在尝试将其抽象为方法而我迷失了.

upvote = 1
no vote = 0
downvote = -1
Run Code Online (Sandbox Code Playgroud)

基本上,一个人可以击中一个upvote或downvote按钮.

如果他们点击upvote并且他们当前的投票是upvote,它'unvotes'该帖子并将其设置为零

如果他们点击downvote并且他们当前的投票是upvote,它会将其切换为downvote

如果他们的投票为零,并且他们点击upvote,则将投票设置为1

对于downvote,反之亦然

这是我到目前为止,但它没有说明你点击upvote后点击upvote ..而不是将其设置为0它将其设置为-1.

我遇到了问题,我很难搞清楚如何写它

  def update_vote(upvote_or_downvote)
    self.active_vote? ? self.value = 0 : self.alternate_vote
  end

  def active_vote?
    self.value != 0
  end

  def alternate_vote
    self.value *= -1
  end
Run Code Online (Sandbox Code Playgroud)

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

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

为什么这个javascript返回undefined?

var linksList = [
   "http://a.com",
   "http://b.com",
   "http://c.com",
]

for (var i=0; i<linksList.length; i++) {
    setTimeout(function() {
        console.log(linksList[i]); 
    }, 3000);
}  
Run Code Online (Sandbox Code Playgroud)

我把它粘贴到chrome检查器中,它返回一个数字,无论出于何种原因(它似乎是一个完全随机的数字??)然后等待...然后返回3'未定义'控制台错误

javascript loops for-loop javascript-events settimeout

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

在Go中创建空闲超时?

我将CloudFlare用于我的一个高容量网站,它位于我的堆栈前面.

事情是CloudFlare除了创建新的连接外,还会打开空闲连接,这不是我可以改变的设置.

当我让Varnish或Nginx坐在前面侦听端口80时,他们已经开箱即用配置来挂断空闲连接.

这很好,直到我必须添加一个用Go编写的代理到我的堆栈前面.它使用net/http标准库.

我不是Go向导,但基于人们告诉我的只有读取和写入超时设置但不挂空闲连接.

现在我的服务器将填满连接和死亡,除非我设置一组读取和写入超时,但问题是我的后端有时需要很长时间,并且它导致好的请求被切断,当他们不应该.

使用Go http处理空闲连接的正确方法是什么?

编辑1:为了更清楚,我正在httputil.NewSingleHostReverseProxy构建一个代理,它公开了传输选项,但仅用于上游.我遇到的问题是下游问题,需要在http.Server使用ReverseProxy作为处理程序的对象上设置它们.http.Server不暴露运输.

编辑2:我希望空闲超时到读取超时,因为后者将应用于活动上传器.

谢谢

connection http go

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

如何在 Varnish 4.0 中传递数据(标头?)

我用来devicedetect.vcl将标题发送X-UA-Device到我的应用程序,因此它知道要呈现哪个布局。varnish 将为该标头设置的可能值为mobiledesktop

在退出时,该标头将转换为Vary: User-Agent.

现在,作为一个单独的、独立的项目,我需要在resp对象上设置另一个标头(该标头在发送到客户端之前发送到我们的 Golang 代理)。该标头将被调用,X-Analytics-Device并且可能具有botmobiletablet或 的值desktop

后端服务器不需要任何事情X-Analytics-Device。只有我们的 Go 代理会解析并删除此标头,然后再将其发送到客户端。

问题是,我需要X-Analytics-Device根据子例程的结果设置标头call devicedetect;,该子例程位于vcl_recv. 我需要最终将其设置在respis in上vcl_deliver,并且我需要知道传递数据的最佳方式。

我能想到的唯一可行的方法(基于我对 Varnish 的有限理解)是我需要设置一些其他标头,并稍后访问它。

也许是这样的(我bot暂时忽略了):

if (req.http.X-UA-Device ~ "^mobile") {
  set req.http.X-UA-Device        = "mobile";
  set req.http.X-Analytics-Device = "mobile";

} elseif (req.http.X-UA-Device ~ "^tablet") {
  set req.http.X-UA-Device        = "desktop"; …
Run Code Online (Sandbox Code Playgroud)

varnish varnish-vcl

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

Postgres 浮点数学 - 我需要做任何特别的事情吗?

我是 PG 新手,我想知道是否需要额外“做任何事情”才能正确处理浮点数学。

例如,在 ruby​​ 中使用BigDecimal,在 Elixir 中使用Decimal

我下面的方案是 PG 的最佳解决方案吗?

SELECT
  COALESCE(SUM(active_service_fees.service_fee * (1::decimal - active_service_fees.withdraw_percentage_discount)), 0)
FROM active_service_fees
Run Code Online (Sandbox Code Playgroud)

数据类型:

service_fee integer NOT NULL
withdraw_percentage_discount numeric(3,2) DEFAULT 0.0 NOT NULL
Run Code Online (Sandbox Code Playgroud)

postgresql floating-point decimal

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

如何查看使用chrome检查器运行的当前javascript?

我有这个复杂的滑块,利用大量的动画.我试图找到触发滑块时调用的函数,以便我可以将onClick分配给任意链接以从滑块本身外部激活滑块.

我已经查看了代码,但我在功能方面处于亏损状态.javascript控制台也没有记录任何东西.很高兴看到目前正在以某种方式执行的代码.这可能吗?

谢谢!

javascript jquery google-chrome

0
推荐指数
1
解决办法
618
查看次数

添加AJAX'添加到收藏夹'到这个控制器?

这让我大吃一惊,有很多事情发生,我只需要在这里寻求帮助.

现在,我有一份资源清单.在每个资源中,它允许某人通过单击链接"将其添加为收藏".我有正常的重定向工作,但至于集成ajax所以他们可以喜欢没有页面刷新,我完全失去了...

  1. 现在我将它作为CRUD'更新'的"放置"动作

FavoritesController(更新是此控制器中唯一的操作)

  def update

    @favorite = Favorite.find_or_initialize_by_resource_id_and_user_id(params[:id], current_user.id)

    if @favorite.persisted?
      @favorite.destroy
    else
       if @favorite.valid?
          @favorite.save
       end
    end

    redirect_to root_url
  end
Run Code Online (Sandbox Code Playgroud)

我的看法:

<%= link_to "", favorites_path(:id => resource.id), :class => "star#{star_post?(resource)}", :method => "put" %>
Run Code Online (Sandbox Code Playgroud)

我的路线:

  resource :favorites, :only => [:update]
Run Code Online (Sandbox Code Playgroud)

我的JS:

  $('.res-list .star').click(function(){
    $.put('/favorites/?id=' + $(this).attr('data-id'));
    return false;
  });
Run Code Online (Sandbox Code Playgroud)

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

0
推荐指数
1
解决办法
850
查看次数

使用$(document).ready时为什么必须使用匿名函数?

我一直在使用文档准备,但我正在观看一些教程视频真的知道最新情况,而不仅仅是通过输入这么多知道.

我总是把它放在一个习惯的匿名函数中,因为它总是如此完成,但现在我看到它是否在匿名函数中(alert();例如),它会在DOM加载时执行NOT但是当javascript时立即执行NOT负载.它必须在一个匿名函数中才能实现它应该如何(当整个页面加载时)和事件监听器触发它的'ready'.

为什么是这样?

此外,我经常看到类似函数(i){}(i)的东西,这是什么意思?

javascript jquery

0
推荐指数
1
解决办法
133
查看次数

如何用Rails 4对单行中的值求和?

我有一个模型,Book与有关书(信息title,author,publisher等等),并且它也有views,downloads,shares.

但是,我想要做的是按照"受欢迎程度"对书籍进行排序,根据我的意思,这是views + downloads + shares针对该特定行,然后我可选择显示与记录相关联的"受欢迎度得分".

谢谢!

mysql activerecord ruby-on-rails ruby-on-rails-4

0
推荐指数
1
解决办法
82
查看次数