目前在我的控制器规范中我有:
require 'spec_helper'
describe CustomerTicketsController do
login_user
describe "POST /create (#create)" do
# include EmailSpec::Helpers
# include EmailSpec::Matchers
it "should deliver the sales alert email" do
# expect
customer_ticket_attributes = FactoryGirl.attributes_for(:customer_ticket)
customer_mailer = mock(CustomerMailer)
customer_mailer.should_receive(:deliver).
with(CustomerTicket.new(customer_ticket_attributes))
# when
post :create, :customer_ticket => customer_ticket_attributes
end
end
end
Run Code Online (Sandbox Code Playgroud)
在我的控制器中我有:
# POST /customer_tickets
# POST /customer_tickets.xml
def create
respond_to do |format|
if @customer_ticket.save
CustomerMailer.sales_alert(@customer_ticket).deliver
format.html { redirect_to @customer_ticket, notice: 'Customer ticket was successfully created.' }
format.xml { render xml: @customer_ticket, status: :created, location: …Run Code Online (Sandbox Code Playgroud) controller ruby-on-rails actionmailer rspec-rails ruby-on-rails-3
在我的Ember应用程序中,我目前有一个模型具有一个findResults函数,该函数返回一个包含Google Places库以获取自动完成结果的承诺.要在我的UI中使用它,我设置了一个PromiseMixin控制器.我指示控制器观察searchText值,当更改时,我将控制器的promise值更新为findResults函数返回的promise ,但是使用新值searchText.当我在浏览器中使用应用程序时,这很好用,但是当我运行验收测试时,测试似乎在返回promise之前完成,因此测试失败.我将在下面包含相关文件.
我不知道如何告诉Ember等待测试期间解决的承诺.
应用程序/服务/谷歌自动完成,location.js
import Ember from "ember";
var googleAutocompleteLocation = Ember.Object.extend({
placeId: null,
description: null
});
googleAutocompleteLocation.reopenClass({
findResults: function(query) {
var self = this;
var promise = new Ember.RSVP.Promise(function(resolve, reject) {
var autocompleteService = new google.maps.places.AutocompleteService();
return autocompleteService.getPlacePredictions({ input: query },
function(predictions, status) {
if (status !== google.maps.places.PlacesServiceStatus.OK) {
Ember.run(null, reject, status);
}
else {
Ember.run(null, resolve, self._decorateGoogleResults(predictions));
}
});
});
return promise;
},
_decorateGoogleResults: function(predictions) {
var locations = …Run Code Online (Sandbox Code Playgroud) 在我的Rails 3应用程序中,我有许多模型,其列具有有限的选择(IE是选择框).在这些情况下,为了管理选择而创建另一个模型和与原始模型的关系似乎有些过分.
我能想到的一个选择是只创建一个选择框并在那里有选择,但这似乎不是很干.有没有人有一个很好的建议如何处理这种情况?
谢谢你的期待.
在我的Rails应用程序中,我想允许用户通过Carrierwave上传图像或非图像文件.目前Carrierwave正在处理和处理图像文件,但遗憾的是它完全丢弃了非图像文件.单个Carrierwave上传器是否有一种干净的方式来处理图像和非图像文件?
我将在下面包含我当前的上传者:
class AssetUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
version :thumb do
process :resize_to_fill => [300, 300]
end
version :icon do
process :resize_to_fill => [48, 48]
end
def extension_white_list
%w(jpg jpeg gif png pdf doc xls docx xlsx ppt)
end
end
Run Code Online (Sandbox Code Playgroud) 在我的Rails 3应用程序中,我使用Twitter Bootstrap作为开发内部项目管理系统的框架工作.我正在使用Formtastic来帮助我使用表单,因为它节省了大量的时间和代码.我的问题是让Formtastic代码以与Bootstrap约定相对应的方式输出表单.我已经阅读了一些我在Google上发现的项目,建议我应该修补Formtastic,但我无法成功完成.
如何自定义Formtastic的输出以在每个字段周围使用div,以便我可以使用Bootstrap?
谢谢你的期待.
我正在寻找关于从Rails应用程序的最终用户的最佳方式的建议的视图文件设置模型的"查找"方法返回的结果集的排序顺序.换句话说,我希望用户能够从选择列表中选择他们的排序顺序.
最初,我想我可以把我放在:order参数中的字符串放入,但从安全的角度来看,这似乎是一个坏主意.
我想我总是可以使用基于选择列表中的值的开关,但这看起来有点笨重.
谢谢你的期待.
我想在我的Rails网站上添加一个搜索框,并想知道你是否可以推荐我在指定列中进行常规搜索的解决方案.我注意到acts_as_ferret插件似乎很好,但我也在寻找其他意见.任何线索或建议将不胜感激.
谢谢你的期待!
我不知道我改变了什么并运行Ubuntu 10.10.Mercurial工作正常,然后突然间,当我今天早上开始推送提交时,我开始收到以下错误:
** unknown exception encountered, details follow
** report bug details to http://mercurial.selenic.com/bts/
** or mercurial@selenic.com
** Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39) [GCC 4.4.5]
** Mercurial Distributed SCM (version 1.6.3)
** Extensions loaded: convert
Traceback (most recent call last):
File "/usr/bin/hg", line 27, in <module>
mercurial.dispatch.run()
File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 16, in run
sys.exit(dispatch(sys.argv[1:]))
File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 34, in dispatch
return _runcatch(u, args)
File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 54, in _runcatch
return _dispatch(ui, args)
File "/usr/lib/pymodules/python2.6/mercurial/dispatch.py", line 494, in _dispatch …Run Code Online (Sandbox Code Playgroud) 在我的项目中,我目前有不同的模型(项目,消息等):
has_many :assets, :as => :attachable, :dependent => :destroy
Run Code Online (Sandbox Code Playgroud)
每个Asset基本上都是一个带有CarrierWave文件的模型.通常我会在父模型(Project,Message等)上使用accepted_nested_attributes,并在fields_for块中列出文件上载字段.
我的问题是,因为我正在使用带有AJAX的jQuery-File-Uploader,所以当上传文件时,父模型的表单将调用父模型的Create方法.其余的父模型字段可能尚未填写.我想也许我可以让文件上传器调用Assets控制器中的create方法,但是我会有一些如何发送父模型的类以便正确存储多态关联.
关于如何干净利落地工作的任何想法?谢谢你的期待.
polymorphism jquery ruby-on-rails ruby-on-rails-3 carrierwave
在我的Widget模型中,我有以下内容:
scope :accessible_to, lambda { |user|
if user.has_role?('admin')
self.all
else
roles = user.roles
role_ids = []
roles.each { |r| role_ids << r.id }
self.joins(:widget_assignments).where('widget_assignments.role_id' => role_ids)
end
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想使用此范围作为Ransack搜索结果的过滤器,因此在我的控制器中我有:
def index
@q = Widget.accessible_to(current_user).search(params[:q])
@widgets = @q.result.order('created_at DESC')
end
Run Code Online (Sandbox Code Playgroud)
这样做会产生以下错误:
未定义的方法`search'for Array:0x007ff9b87a0300
我猜Ransack正在寻找一个ActiveRecord关系对象,而不是一个数组.无论如何,我可以使用我的范围作为Ransack的过滤器吗?
carrierwave ×2
actionmailer ×1
bitbucket ×1
controller ×1
ember.js ×1
formtastic ×1
interface ×1
javascript ×1
jquery ×1
mercurial ×1
meta-search ×1
polymorphism ×1
python ×1
rspec-rails ×1
scopes ×1
search ×1
sorting ×1