我想运行回调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)
我在我的模型中试过要求并包含回形针,但似乎并不重要.
有任何想法吗?
如何获取嵌套元素"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) 我最近在一个项目中开始使用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
我在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
我确信这很简单,但我似乎无法得到它:
作品:
@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) 我有一个查询,它搜索同一个表中的两个单独的字段...寻找最有可能是特定城市的位置,但也可能是一个国家......即需要两个字段.
表看起来像:
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) 我在测试使用Postgresql和Rails 3时遇到了问题.
开发和生产数据库,我可以很好地工作,但是当我运行测试数据库引发以下错误rake或db: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
我在使用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)
这当然有效.
在下面的示例中,使用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) 我正在尝试避免从可能有或没有值的哈希中提取错误消息.我想要它返回值或返回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 ×3
hstore ×2
jquery ×2
postgresql ×2
activeadmin ×1
activerecord ×1
amazon-s3 ×1
arrays ×1
callback ×1
friendly-id ×1
hash ×1
javascript ×1
paperclip ×1
readonly ×1
regex ×1
sql ×1
testing ×1
union ×1
unit-testing ×1