小编Max*_*ams的帖子

禁用表单和所有包含的元素,直到ajax查询完成(或另一个解决方案以防止多个远程请求)

我有一个带有输入和选择的搜索表单,当任何输入/选择被更改时,我运行一些js然后用jquery进行ajax查询.我希望阻止用户在请求进行过程中对表单进行进一步更改,因为他们可以立即启动多个远程搜索,从而有效地导致不同搜索之间的竞争.

似乎最好的解决方案是在等待请求返回时阻止用户与表单交互.目前我正在通过在制作ajax查询之前隐藏表单然后在成功/错误时再次显示它来以最愚蠢的方式执行此操作.这解决了问题,但看起来很糟糕,并不是真的可以接受.是否有另一种更好的方法来阻止与表单的交互?为了使事情变得更复杂,为了允许漂亮的选择,用户实际上与跨越js的跨距进行交互,以将它们绑定到实际的隐藏选择.因此,即使跨度不是输入,它们也包含在表单中并表示表单的实际交互元素.

感谢任何建议 - 最多 这就是我现在正在做的事情:

function submitQuestionSearchForm(){
  //bunch of irrelevant stuff  
  var questionSearchForm = jQuery("#searchForm");
  questionSearchForm.addClass("searching");
  jQuery.ajax({
    async: true, 
    data: jQuery.param(questionSearchForm.serializeArray()), 
    dataType: 'script', 
    type: 'get', 
    url: "/questions", 
    success: function(msg){ 
      //more irrelevant stuff
      questionSearchForm.removeClass("searching");                           
    },
    error: function(msg){ 
      questionSearchForm.removeClass("searching");                           
    }    
  }); 
  return true;
}
Run Code Online (Sandbox Code Playgroud)

"搜索"类目前只有{display:none}

javascript jquery

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

Authlogic:如何在不知道密码的情况下在幕后登录用户

我使用Authlogic来处理登录/身份验证/会话等,我使用paypal处理我的订阅我的网站的付款.对于试用期已过期的用户,我想在完成PayPal付款流程后自动登录,但我无法知道如何在没有密码的情况下执行此操作.我的流程因此是:

  • 过期的用户登录
  • 他们的审判已经过期了,所以我将他们推送到订阅页面,通过他们独特的persistence_token字段跟踪他们是谁,我把它放入一个被发送到PayPal的param.
  • 当我从paypal收到付款通知时,我也得到了他们的令牌,所以我知道哪个用户付了钱,我相应地修改了他们的帐户.
  • 当他们用paypal付款时,将他们发送回我网站的按钮有他们订单的唯一标记,所以我可以告诉他刚刚付款的人就是那个"订阅完整"页面,而不是任何人只需在浏览器中输入网址即可.
  • 当他们从paypal返回到网站时,他们仍然会退出,他们必须经历登录/注册过程.

在上面的情况下,因为我将params中的订单令牌收到我的'subscription_complete'页面,我知道用户是刚刚付款的用户,所以我有足够的信息来信任他们,好像他们已经记录因此,我想自动记录它们,即为它们创建一个UserSession记录.但是,问题是我不知道他们的密码(因为密码是单向加密的),我需要密码来创建user_session.

所以,我的问题是:如果我信任当前用户,但不知道他们的密码,我仍然可以记录他们吗?如果是这样,怎么样?

ruby-on-rails authlogic

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

errors.full_messages:属性名称出现两次

这一直困扰着我.我的所有模型都会出现此问题,但我会使用其中一个,测验,作为示例.

测验具有以下验证:

validates_presence_of :size, :style
Run Code Online (Sandbox Code Playgroud)

我正在使用I18n,我在我的翻译文件中有以下设置:(这些只是标准的错误消息,但我已将它们包含在我的en.yml中,以便很容易看到结构,如果我想要为任何特定型号覆盖它们)

activerecord:
  errors:
    messages:
      inclusion: "{{attribute}} is not included in the list"
      invalid: "{{attribute}} is invalid"
      empty: "{{attribute}} can't be empty"
      blank: "{{attribute}} can't be blank"
      record_invalid: "Validation failed: {{errors}}"   
Run Code Online (Sandbox Code Playgroud)

问题是这样的:如果我做一个新的测验,验证失败,那么看看quiz.errors.full_messages,每个错误消息都有属性然后是完整的消息:

>> quiz = Quiz.create
=> <unsaved quiz object>
>> quiz.errors.full_messages
=> ["Size Size can't be blank", "Style Style can't be blank"]
Run Code Online (Sandbox Code Playgroud)

我不明白为什么消息是,例如,"Size Size can't be blank"而不是"Size can't be blank"

任何人的想法?

validation activerecord ruby-on-rails

4
推荐指数
2
解决办法
3421
查看次数

使用Paperclip将视频上传到Heroku - 如何制作缩略图?

我刚刚用回形针将视频上传添加到我在Heroku上的Rails 3应用程序中.它工作正常,但我不知道如何为视频生成缩略图.我想我应该在heroku中使用其中一个视频处理插件?

哪些建议最容易连接到Paperclip?

video heroku paperclip ruby-on-rails-3

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

获取原始参数而不是"加工成哈希"版本

Rails 3问题.

如果我发送这样的请求 PUT http://myapp/posts/123?post[title]=hello

然后在我的控制器中我得到了 params = {:id => 123, :post => {:title => "hello"}}

这通常很好,通常对例如有用 Post.create(params[:post])

但是,在这种情况下我需要访问params的'raw'形式,所以我可以命令它们取出值,将它们全部作为简单的字符串处理,即我希望它们列出,所以param名称是"post[title]"和param价值是"hello".

有没有办法得到这些价值观?我想可能有一种方法,request它有原始的拉丝形式的参数,但我找不到一个.

我试图将哈希转换回带有to_param的字符串,但这看起来很脏但可能是不必要的.

作为奖励,我希望它忽略:id参数,字面上只是参加了之后的部分?在原始请求中.事实上,如果我可以回到原始请求字符串,即"http://myapp/posts/123?post[title]=hello"那样做:我可以拆分?并从那里拿走它.我刚刚想到我可以从标题中得到它.在此期间,如果有人知道更好的方式,请告诉我,请:)

感谢任何建议 - 最多

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

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

如果测试工作,为什么不内联?

我有一个内联,如果没有按照我的想法进行操作,为了清晰起见,我已将其提取到控制台示例中.

我认为内联if在语法上与多行if相同,但它看起来并非如此.

foo = "chunky"
(bar1 = foo) if (!defined?(bar1) && foo)
bar1
Run Code Online (Sandbox Code Playgroud)

在这种情况下,bar1最终设置为nil.如果我重组它

foo = "chunky"
if !defined?(bar2) && foo
  bar2 = foo
end
bar2
Run Code Online (Sandbox Code Playgroud)

然后它工作 - bar2设置为"chunky"(我在第二个例子中使用了bar2而不是bar1,以确保我在每种情况下都使用了未定义的变量).

是不是内联如果总是将bar1设置为某个东西,默认为零?我认为它只是在if之前没有评估部分,如果if测试返回falsy.

ruby

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

Corona SDK - 从eventListener调用实例方法或类方法

我有一个Foo类(好吧,一个伪类)设置如下:

--in foo.lua
Foo = {}

--constructor
function Foo:new(x, y)
  --the new instance
  local foo = display.newImage("foo.png")
  -- set some instance vars
  foo.x = x
  foo.y = y
  foo.name = 'foo'    

  --instance method
  function foo:speak()
    print("I am an instance and my name is " .. self.name)
  end

  --another instance method 
  function foo:moveLeft()
    self.x = self.x - 1
  end

  function foo:drag(event)
    self.x = event.x
    self.y = event.y  
  end

  foo:addEventListener("touch", drag)

  return foo
end

--class method
function Foo:speak()
  print("I am the class …
Run Code Online (Sandbox Code Playgroud)

lua coronasdk

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

手刹:保存自定义预设/编码命令,以便在另一台机器上的handbrake-cli上使用

我有一堆视频要转换,从flv到mp4.在Handbrake gui中,在Ubuntu中,我已经整理了所有设置.我把它保存为一个名为"全平板电脑"的预设.

我需要在不同的ubuntu机器上使用HandBrakeCLI,这只是命令行.所以,我有两个选择,我可以看到,我无法弄清楚如何做其中任何一个:

1)看看手刹gui使用的设置是什么,所以我可以复制它们并直接使用HandBrakeCLI,根据需要替换文件名.

2)以这样的方式保存我的"全片"预设,我可以将其复制到另一台机器并在那里使用HandBrakeCLI.

选项2似乎更好.当我列出HandBrakeCLI中的可用预设时,它不会列出我的自定义预设,建议GUI版本将它们保存到与cli版本不同的地方.

有什么建议?谢谢,马克斯

ubuntu handbrake

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

在网址的路径部分之后插入".js"的最简洁方法?

我有一个url 变量,我想".js"在路径部分之后插入,除非路径后面有".<something>"一部分.

所以,这是一个"硬编码"的数组,包括每个的起始值和预期的最终值,这有助于很好地说明问题:

var url_pairs = [
 ["http://example.com/foo", "http://example.com/foo.js"],
 ["http://example.com/foo/bars", "http://example.com/foo/bars.js"],
 ["http://example.com/foo/bars?quz=baz",  "http://example.com/foo/bars.js?quz=baz"],
 ["http://example.com/foo/bars?quz=baz&qix=bax", "http://example.com/foo/bars.js?quz=baz&qix=bax"],
 ["/foo", "/foo.js"],
 ["/foo/bars", "/foo/bars.js"],
 ["/foo/bars?quz=baz", "/foo/bars.js?quz=baz"],
 ["/foo/bars?quz=baz&qix=bax", "/foo/bars.js?quz=baz&qix=bax"],
 ["/foo/bars.js?quz=baz&qix=bax", "/foo/bars.js?quz=baz&qix=bax"],
 ["/foo/bars.xml?quz=baz&qix=bax", "/foo/bars.xml?quz=baz&qix=bax"]    
]    
Run Code Online (Sandbox Code Playgroud)

我正在努力想出一个干净而快速的方法来做到这一点,但我确信它可以干净利落地完成,例如使用正则表达式.谁能让我直截了当?谢谢,马克斯

编辑:测试解决方案 - 这是我写的一个代码片段来测试它.

function convertUrl(oldUrl){
  //insert code to convert oldUrl and return the result
}       

$.each(url_pairs, function(i,pair){
  var oldUrl = pair[0];
  var expected = pair[1];
  var newUrl = convertUrl(oldUrl);
  if(newUrl != expected){
    console.log("expected \""+expected+"\", but got \""+newUrl+"\""); 
  }
});
Run Code Online (Sandbox Code Playgroud)

javascript regex replace

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

测试浏览器是否支持Web Audio Api的简单方法?

对于当前浏览器是否支持Web Audio Api,有人能告诉我一个简单可靠的测试(在javascript/jquery中)吗?需要在移动设备上工作.

https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API

javascript browser jquery html5 web-audio-api

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