我有一个三层深度的延迟ajax调用链,理想情况下,当最深层完成时,它们会一直向前推进(使我成为Inception ..."我们需要更深入!").
问题是我一次发送了许多ajax请求(可能是数百个),需要推迟直到所有这些请求完成.我不能依赖最后一次完成.
function updateAllNotes() {
return $.Deferred(function(dfd_uan) {
getcount = 0;
getreturn = 0;
for (i = 0; i <= index.data.length - 1; i++) {
getcount++;
$.when(getNote(index.data[i].key)).done(function() {
// getNote is another deferred
getreturn++
});
};
// need help here
// when getreturn == getcount, dfd_uan.resolve()
}).promise();
};
Run Code Online (Sandbox Code Playgroud) 我正在尝试从ActionMailer(Rails 3.1.1)中进行不同模板的条件渲染.我希望大多数用户获得普通welcome.html.erb模板,但有些用户可以获得特殊welcome_photographer.html.erb模板.这种类型的东西在ActionController中工作:
# (in /app/mailers/user_mailer.rb)
def welcome(user)
@user = user
mail(:to => "#{@user.name} <#{@user.email}>", :subject => "Welcome to ...")
render "welcome_photographer" if @user.is_photographer
end
Run Code Online (Sandbox Code Playgroud)
但渲染不起作用 - 每个人都获得标准,welcome.html.erb即使@user.is_photographer == true
Post
:belongs_to :user
User
:has_many :posts
Run Code Online (Sandbox Code Playgroud)
在我的注册工作流程中,他们首先起草一个帖子,然后在下一页上输入他们的用户信息进行注册.
# intermediate step, validate that Post is valid before moving on to User creation
# posts_controller:
@post = Post.new(params[:post])
if @post.valid?
# go on to create User
else
render 'new'
end
Run Code Online (Sandbox Code Playgroud)
但!@post错误消息没有创建,因为我没有保存我正在检查的@post模型.valid?.如何在不保存的情况下创建错误消息?
FactoryGirl不会设置我的受保护属性user.confirmed.这里的最佳做法是什么?
Factory.define :user do |f|
f.name "Tim" # attr_accessible -- this works
f.confirmed true # attr_protected -- doesn't work
end
Run Code Online (Sandbox Code Playgroud)
我可以@user.confirmed = true在使用我的工厂之后做一个,但是在很多测试中都有很多重复.
ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 attr-protected factory-bot
尝试使用url params在rails 3中进行基本过滤.我想要一个可以过滤的白色列表,并返回匹配的所有项目.我已经设置了一些范围(还有更多范围):
# in the model:
scope :budget_min, lambda {|min| where("budget > ?", min)}
scope :budget_max, lambda {|max| where("budget < ?", max)}
Run Code Online (Sandbox Code Playgroud)
...但是基于现在使用一些,没有或所有这些范围的最佳方法是params[]什么?我已经走到了这一步,但它没有延伸到多个选项.寻找一种"链条如果存在"类型的操作.
@jobs = Job.all
@jobs = Job.budget_min(params[:budget_min]) if params[:budget_min]
Run Code Online (Sandbox Code Playgroud) 验证关联模型属性的最简单的方法是什么?
Item
belongs_to :user
validates_presence_of :user
# AND the "is_photographer" column for that user must be true
User
has_many :items
# can be a regular user or a photographer
Run Code Online (Sandbox Code Playgroud) 我的情况是有几种不同的模型可以有评论.试图找出关系:
Post
has_many :comments
Update
has_many :comments
Comment
belongs_to EITHER :post OR :update (but not both)????
Run Code Online (Sandbox Code Playgroud)
什么是建立评论关系的正确方法?我希望能够打电话Post.comments和Update.comments
ruby activerecord ruby-on-rails polymorphic-associations ruby-on-rails-3