小编Dav*_*e G的帖子

升级到OSX 10.7 Lion后修复Postgresql

我最近升级到OSX 10.7,此时我的rails安装在尝试连接到psql服务器时完全被堵塞了.当我从命令行使用时

psql -U postgres
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但是当我尝试使用相同的用户名和密码运行rails服务器或控制台时,我收到此错误

...activerecord-3.0.9/lib/active_record/connection_adapters/postgresql_adapter.rb:950:in `initialize': could not connect to server: Permission denied (PGError) 
Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
Run Code Online (Sandbox Code Playgroud)

任何可能发生的想法都会非常有用!谢谢!

postgresql macos ruby-on-rails ruby-on-rails-3 osx-lion

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

在RoR中将变量值注入javascript和HAML

我有以下使用ZenDesk的功能.我想将current_user详细信息注入表单,如下所示.(这是我的html.haml模板).但是,我无法弄清楚如何使这项工作.

:javascript
    if (typeof(Zenbox) !== "undefined") {
      Zenbox.init({
        dropboxID:   "xxxxx",
        url:         "xxxxx.zendesk.com",
        tabID:       "support",
        tabColor:    "black",
        tabPosition: "Left",
        requester_name:  =current_user ? "#{current_user.first_name} #{current_user.last_name}" : "" ,
        requester_email: =current_user ? "#{current_user.email}" : "" ,
        hide_tab: true
        });
    }
Run Code Online (Sandbox Code Playgroud)

简而言之,如何将rails变量注入haml中的:javascript元素.

javascript haml ruby-on-rails

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

确定一个字符串数组是否包含ruby中的某个子字符串

我有一个简单的红宝石问题.我有一个字符串数组.我想确定该数组是否包含任何字符串的子字符串.举个例子

a = ['cat','dog','elephant']
a.to_s.include?('ele')
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗?

谢谢.

ruby

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

当类存在于子目录中并且是子类时,Rspec与load_missing_constant失败

由于我怀疑与自动加载相关的东西,我在运行一堆RSpec测试时遇到了一些麻烦.这是错误:

/usr/share/ruby-rvm/gems/ruby-1.9.2-p320/gems/activesupport-3.1.4/lib/active_support/dependencies.rb:490:in `load_missing_constant': Expected /var/lib/jenkins/.../portfolios/base_manage_controller.rb to define Portfolios::BaseManageController (LoadError)
from /usr/share/ruby-rvm/gems/ruby-1.9.2-p320/gems/activesupport-3.1.4/lib/active_support/dependencies.rb:181:in `block in const_missing'
from /usr/share/ruby-rvm/gems/ruby-1.9.2-p320/gems/activesupport-3.1.4/lib/active_support/dependencies.rb:179:in `each'
from /usr/share/ruby-rvm/gems/ruby-1.9.2-p320/gems/activesupport-3.1.4/lib/active_support/dependencies.rb:179:in `const_missing'
from /usr/share/ruby-rvm/gems/ruby-1.9.2-p320@global/gems/rake-0.9.2.2/lib/rake/ext/module.rb:36:in `const_missing'
from /var/lib/jenkins/jobs/.../app/controllers/portfolios/customize_controller.rb:1:in `<top (required)>'
Run Code Online (Sandbox Code Playgroud)

这是文件的标题:

class Portfolios::BaseManageController < ApplicationController
Run Code Online (Sandbox Code Playgroud)

它存在于 app/controllers/portfolios/base_manage_controller.rb

它的子类:

class Portfolios::CustomizeController < Portfolios::BaseManageController
Run Code Online (Sandbox Code Playgroud)

它存在于 app/controllers/portfolios/customize_controller.rb

最后这里有一堆自动加载:

config.autoload_paths += Dir["#{config.root}/lib",  "#{config.root}/lib/**/"]
config.autoload_paths += %W(#{config.root}/app/models/statistics)

#Any test/dev specific load paths
if not Rails.env.production?
  config.autoload_paths += %W(#{config.root}/spec/support)
  config.autoload_paths += %W(#{config.root}/spec/support/builders)
  config.autoload_paths += %W(#{config.root}/spec/support/modules)
  config.autoload_paths += %W(#{config.root}/spec/support/utils)
end
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激!

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

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

使用Rails和Postgresql迁移时不会填充默认值

我目前正在尝试运行此迁移:

class AddDroppedProjectsCountToUser < ActiveRecord::Migration
  def self.up
    add_column :users, :dropped_projects, :integer, {:default=>0, :required=>true}
  end

  def self.down
    remove_column :users, :dropped_projects
  end
end
Run Code Online (Sandbox Code Playgroud)

该列已正确添加,但没有旧记录填充为0.它们是零.我也尝试过使用default=>'0',但无济于事.知道为什么会这样吗?(Rails 3.0.3)


编辑添加:当我创建一个新用户时,它工作正常,一切看起来都正确.只是旧用户在表中仍然没有nil值.

sql postgresql ruby-on-rails ruby-on-rails-3

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

检测ajax:Rails 3表单中的失败

我目前正在使用rails 3中的表单,我遇到了一个非常奇怪的情况.基本上,表单检测到成功返回,但未能检测到"400"错误.这是一些代码.

JQUERY:

$(".editorial_review").live('ajax:failure', function(xhr, status, error) {
         alert('error');
        })
    .live('ajax:success', function(){$(this).parents('tr').prev('tr.main').fadeOut(); $(this).parents('tr').fadeOut(); });
  });  
Run Code Online (Sandbox Code Playgroud)

扶手:

 def create
    render :json => {:error => 'No Final Status Selected'},:status => 400 and return if params[:status].blank?
    @success = send(params[:status].gsub(' ', '_'))
    respond_to do |format|
      format.js {head:ok}
    end
  end  
Run Code Online (Sandbox Code Playgroud)

HAML:

-semantic_form_for EditorialReview.new, :remote=>true do |f|
Run Code Online (Sandbox Code Playgroud)

我已经检查了萤火虫,一切似乎都是犹太洁食,而且当控制器响应时head :ok,没有任何问题可言.

任何帮助将非常感激.谢谢!

ajax jquery ruby-on-rails ruby-on-rails-3

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

使用Jquery Validate插件在文本字段上动态设置最小值

我试图在一个字段上有一个动态更新的最小值,具体取决于来自其他字段的输入.简而言之,我的代码是:

$("#new_project").live("click", function() {

    switch($('input:radio[name=quality-level]:checked').val()){
        case 'average' : ppw = .006;
        case 'below-average' : ppw =.004;
        case 'good' : ppw = .008;
        case 'very-good' : ppw = .016;
    }

    if ($('#minimum-word-length').val() && $('input:radio[name=quality-level]:checked').val())
    {
        min_price = $('#minimum-word-length').val() * ppw;

    }

    $("#new_project, .edit_project").validate({
    rules: {
    ...
    "price-per-article": {required: true, number: true,  min:min_price},
    ...
    },
    errorPlacement: function(error, element) { }


    });

});
Run Code Online (Sandbox Code Playgroud)

最低价格设置正确,并正确更新.也就是说,无论出于何种原因,最小值规则都不会更新我认为是因为验证代码仅加载在文档加载上.所以我猜有没有办法重新加载规则,以便在填充两个必要字段时最小值发生变化?

谢谢!

javascript validation jquery

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

Will_Paginate和order子句不起作用

我称之为一个非常简单的功能,似乎无法弄清楚最新情况.(我使用rails 3.0.3和'will_paginate'gem的主分支).我有以下代码:

  results = Article.search(params) # returns an array of articles
  @search_results = results.paginate :page => params[:page],  :per_page=>8, :order => order_clause
Run Code Online (Sandbox Code Playgroud)

无论我使用order_clause(例如'article_title desc'和'article_title asc'),结果总是以相同的顺序相同.因此,当我检查使用类似的东西时@search_results[0],元素总是相同的.在我看来,它们显然总是一样的.我完全错过了什么吗?

我确定它有点傻,但我整晚都在撞墙.任何帮助将非常感激!

编辑为添加:搜索子句执行以下操作:

def self.search(params)
    full_text_search(params[:query].to_s).
    category_search(params[:article_category].blank? ? '' : params[:article_category][:name]).
    payout_search(params[:payout_direction], params[:payout_value]).
    length_search(params[:length_direction], params[:length_value]).
    pending.
    distinct.
    all
  end
Run Code Online (Sandbox Code Playgroud)

其中每个人都是基于searchlogic的函数,如下所示:

#scopes
scope :text_search, lambda {|query|
    {
      :joins => "INNER JOIN users ON users.id IN (articles.writer_id, articles.buyer_id)",
      :conditions => ["(articles.article_title LIKE :query) OR
                       (articles.description LIKE :query) OR
                       (users.first_name LIKE :query) OR
                       (users.last_name LIKE :query)", { :query …
Run Code Online (Sandbox Code Playgroud)

sql ruby-on-rails will-paginate

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

仅在生产Rails环境中调用Mixpanel API

我目前正在使用 mixpanel 和默认的“mixpanel”gem进行分析,并在我的控制器中设置了一些调用。我希望这些调用仅在生产环境中运行。最好的方法是为每次调用执行以下操作:

@mixpanel.track_event("Job Accepted", {:user=> current_user.id}) if RAILS_ENV == 'production'
Run Code Online (Sandbox Code Playgroud)

看起来有点矫枉过正,但我​​正在努力想出更好的解决方案。任何帮助都会很棒!

environment ruby-on-rails

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