小编hol*_*den的帖子

回形针回调或简单的处理器?

我想运行回调after_post_process但它似乎不适用于使用Paperclip 2.3.8的Rails 3.0.1.它给出了一个错误:

undefined method `_post_process_callbacks' for #<Class:0x102d55ea0>
Run Code Online (Sandbox Code Playgroud)

我想在文件上传后调用Panda API.我会为此创建自己的处理器,但是当Panda处理处理时,它也可以上传文件,并将自己排队一段不确定的持续时间我认为回调会很好.但回调似乎在Rails3中不起作用.

after_post_process :panda_create

    def panda_create
      video = Panda::Video.create(:source_url => mp3.url.gsub(/[?]\d*/,''), :profiles => "f4475446032025d7216226ad8987f8e9", :path_format => "blah/1234")
    end
Run Code Online (Sandbox Code Playgroud)

我在我的模型中试过要求并包含回形针,但似乎并不重要.

有任何想法吗?

ruby-on-rails callback amazon-s3 paperclip ruby-on-rails-3

20
推荐指数
2
解决办法
5231
查看次数

jquery嵌套选择器

如何获取嵌套元素"4"?

我试过了:

var nights = $("div.nights h5 div.num").val();
Run Code Online (Sandbox Code Playgroud)

和:

var nights = $("div.nights > h5 > div.num").val();
Run Code Online (Sandbox Code Playgroud)

例:

<div class="nights">
        <h5 class="biguns">
            <div class="num">4</div>
            Nights
        </h5>
</div>
Run Code Online (Sandbox Code Playgroud)

jquery jquery-selectors

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

使用ActiveAdmin和Friendly_id时的ActiveRecord :: ReadOnlyRecord

我最近在一个项目中开始使用ActiveAdmin,几乎所有东西都运行良好但是当我将它与friendly_id gem结合使用时遇到了问题.我正在为我的表单[我相信]抛出ActiveRecord :: ReadOnlyRecord,因为friendly_id属性的ID是只读的:

{"utf8"=>"✓",
"_method"=>"put",
"authenticity_token"=>"Rc5PmUYZt3BiLvfPQr8iCPPXlbfgjoe/n+NhCwXazNs=",
"space"=>{"name"=>"The Kosmonaut",
"address"=>"8 Sichovykh Striltsiv 24",
"email"=>"info@somedomain.com"},
"commit"=>"Update Space",
"id"=>"the-kosmonaut"}  <--- culprit
Run Code Online (Sandbox Code Playgroud)

我猜最后一行是罪魁祸首,因为它是一个只读属性,它不是我的形式,而是在PATH中

HTTP://本地主机:5000 /管理/空间/的-kosmonaut /编辑

如何通过尝试更新ID来解决此问题?

ActiveAdmin中的表单如下所示:

  form do |f|
    f.inputs "Details" do
      f.input :name
      f.input :address
      f.input :email
      f.input :phone
      f.input :website
    end
    f.inputs "Content" do
      f.input :description
      f.input :blurb
    end
    f.buttons
  end
Run Code Online (Sandbox Code Playgroud)

更新:这不起作用,所以它不是friendly_id?

我尝试使用@ watson的建议应该有效,但仍然有同样的错误;-(

{"utf8"=>"✓",
 "_method"=>"put",
 "authenticity_token"=>"Rc5PmUYZt3BiLvfPQr8iCPPXlbfgjoe/n+NhCwXazNs=",
 "space"=>{"name"=>"The Kosmonaut 23"},
 "commit"=>"Update Space",
 "id"=>"6933"}
Run Code Online (Sandbox Code Playgroud)

HTTP://本地主机:5000 /管理/空间/ 6933 /编辑

当我用record.readonly检查控制台中的记录时?它返回false

更新更新:删除scope_to可以解决问题.

scope_to :current_user, :unless => proc{ current_user.admin? }
Run Code Online (Sandbox Code Playgroud)

唯一的问题是我需要使用scope_to来防止用户看到他们不拥有的记录.我的猜测是(因为我假设scope_to通常与has_many一起使用)我的HABTM关联会导致一些奇怪吗?用户< - HABTM …

ruby-on-rails readonly friendly-id ruby-on-rails-3 activeadmin

16
推荐指数
2
解决办法
3794
查看次数

rails 4.1通过hstore验证任意字段

我在Rails 4.1中使用HStore来管理I18n和语言存储.它工作得很好我唯一的问题是我想做这样的事情(而不是使用store_accessor)

在Rails 4.0中,这很有用:

https://gist.github.com/rf-/2322543(simple_form和hstore基本功能)

所以我可以简单地做一些事情:

  validates_hstore :content do
    validates_presence_of :en
  end
Run Code Online (Sandbox Code Playgroud)

魔法发生的地方(似乎在Rails 4.1中无法正常工作)

module HstoreValidation
  def validates_hstore(field, &block)
    validation_class = Class.new do
      include ActiveModel::Validations

      def self.name
        '(validations)'
      end

      def initialize(data)
        @data = data
      end

      def read_attribute_for_validation(attr_name)
        @data[attr_name]
      end
    end
    validation_class.class_eval &block

    validate do
      validator = validation_class.new(self[field])

      if validator.invalid?
        validator.errors.each do |attr, text|
          self.errors.add(attr, text)
        end
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

相反,我总是得到,即使字段不是空白:

messages:
  :en:
  - can't be blank
Run Code Online (Sandbox Code Playgroud)

postgresql ruby-on-rails hstore ruby-on-rails-4 ruby-on-rails-4.1

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

如何在Ruby中添加数组

我确信这很简单,但我似乎无法得到它:

作品:

@build1 = Booking.build_booking('2009-06-13',3,2,18314)
@build2 = Booking.build_booking('2009-06-13',3,4,18317)
@build = @build1 + @build2
Run Code Online (Sandbox Code Playgroud)

我想要工作的......

#for item in @cart.items do
#  @build << Booking.build_booking('2009-06-13',3,2,18314)
#end
Run Code Online (Sandbox Code Playgroud)

也不起作用......

#(1..3).each do |i|
#  @build << Booking.build_booking('2009-06-13',3,2,18314)
#end
Run Code Online (Sandbox Code Playgroud)

ruby arrays hash ruby-on-rails

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

rails union hack,如何将两个不同的查询拉到一起

我有一个查询,它搜索同一个表中的两个单独的字段...寻找最有可能是特定城市的位置,但也可能是一个国家......即需要两个字段.

表看起来像:

Country    City

Germany    Aachen
USA        Amarillo
USA        Austin
Run Code Online (Sandbox Code Playgroud)

结果:

Keyword   Sideinfo

Aachen    Germany
USA       Country
Austin    USA
Germany   Country 
Run Code Online (Sandbox Code Playgroud)

基本上我想知道是否有更简洁的方法来做到这一点因为我必须使用两个单独的查询然后将它们添加在一起,对它们进行排序等等(这很好):

  def self.ajax(search)
    countries = Location.find(:all, :select=> 'country AS keyword,  "Country" AS sideinfo', :joins => :hotels, :conditions => [ 'hotels.email IS NOT NULL AND country LIKE ?', "#{search}%" ], :group => :country )
    cities = Location.find(:all, :select=> 'city AS keyword, country AS sideinfo', :joins => :hotels, :conditions => [ 'hotels.email IS NOT NULL AND city LIKE ?', "#{search}%" ], …
Run Code Online (Sandbox Code Playgroud)

ruby sql union activerecord ruby-on-rails

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

PGError:错误:其他用户正在访问源数据库"template1"

我在测试使用Postgresql和Rails 3时遇到了问题.

开发和生产数据库,我可以很好地工作,但是当我运行测试数据库引发以下错误rakedb:test:prepare

PGError:错误:其他用户正在访问源数据库"template1"

更新

谷歌搜索,似乎应该使用template0而不是template1使用createdb在Postgres中创建一个新的数据库.在典型的"所以我将删除原因.但不是症状"时尚,我发现vendor/rails/railities/lib/task/databases.rake并改变了第109行:

createdb #{enc_option} \
-U "#{abcs["test"]["username"]}" \
-T template0 #{abcs["test"]["database"]}
Run Code Online (Sandbox Code Playgroud)

但我真的不想这样做,因为我使用Rails作为创业板,任何人都知道另一种工作或修复?

database.yml:

development:
  adapter: postgresql
  encoding: unicode
  database: test1234_development
  pool: 5
  username: holden
  password: postgres

test:
  adapter: postgresql
  encoding: unicode
  database: test1234_test
  pool: 5
  username: holden
  password: postgres
Run Code Online (Sandbox Code Playgroud)

完整错误:

注意:数据库"test1234_test"不存在,跳过
PGError:错误:其他用户正在访问源数据库"template1"
详细信息:还有1个其他会话正在使用该数据库.
:CREATE DATABASE"test1234_test"ENCODING ='unicode'

testing postgresql unit-testing ruby-on-rails ruby-on-rails-3

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

rails 4强参数+动态hstore键

我在使用Hstore和动态访问器克服Rails 4中新的强params要求时遇到了问题

我有一个Hstore列:content,我想用它来存储多种语言的内容,即:en, :fr等等.我不知道在模型或控制器中预先设置哪种语言.

store_accessor :content, [:en, :fr] #+226 random other il8n languages won't work.
Run Code Online (Sandbox Code Playgroud)

如何在一个列的rails 4中覆盖强params(或允许动态hstore键)?

  params.require(:article).permit(
    :name, :content,
    :en, :fr #+226 random translations
  )
Run Code Online (Sandbox Code Playgroud)

缺乏...

params.require(:article).permit!
Run Code Online (Sandbox Code Playgroud)

这当然有效.

ruby-on-rails hstore strong-parameters ruby-on-rails-4

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

使用正则表达式(regex)替换jQuery/JavaScript中的选定文本

在下面的示例中,使用jQuery选择文本.我们如何通过摆脱其他数据来隔离货币?

这种使用JavaScript的尝试replace不起作用:

var symbol = $("div.price > h5 > div.num").text().replace(/[\d.]*/, "");
Run Code Online (Sandbox Code Playgroud)

这是HTML的示例; jQuery选择器正在工作:

<div class="price">
  <h5 class="biguns">
    <div class="num">
      €12.28
    </div>
    Lowest Price Per Night
  </h5>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript regex jquery pattern-matching

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

尝试获取哈希值时的`try`方法

我正在尝试避免从可能有或没有值的哈希中提取错误消息.我想要它返回值或返回nil.

我认为该try方法会这样做,但我仍然会收到错误.

key not found: "en"
Run Code Online (Sandbox Code Playgroud)

我的哈希是一个名为content... content['en']等的hstore列.

content = {"es"=>"This is an amazing event!!!!!", "pl"=>"Gonna be crap!"}
Run Code Online (Sandbox Code Playgroud)

试试方法

@object.content.try(:fetch, 'en') # should return nil, but errors even with try method
Run Code Online (Sandbox Code Playgroud)

我认为这会奏效,但事实并非如此.我怎样才能返回nil而不是错误?

此外,内容字段本身也可能是nil如此调用content['en']throws:

undefined method `content' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-on-rails-4

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