小编Nat*_*ong的帖子

phpMyAdmin:更改显示的默认行数?

默认情况下,每当我加载一个表时,phpMyAdmin就会显示30行(查询包含"LIMIT 30").我通常希望看到(最多)几百行.

有没有办法更改默认设置?

php mysql phpmyadmin

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

如何查看为Ecto.Query生成的原始SQL?

我有一个Ecto.Query和一个Repo,这样我就可以打电话Repo.all(query)并获得结果.但是,结果并不是我所期望的.

如何查看Repo将从中生成的原始SQL Ecto.Query

elixir ecto

30
推荐指数
2
解决办法
8719
查看次数

如何在Rake任务依赖项中使用命名空间?

在定义rake任务时,可以使用名称空间,如下所示:

namespace :demolition do
  task :fire_bazooka do
    puts "kaboom!"
  end
end
Run Code Online (Sandbox Code Playgroud)

这可以称为rake demolition:fire_bazooka.

也可以为任务指定先决条件,如下所示:

# Single prerequisite
task :fire_bazooka => :load_bazooka do ....

# Multiple prerequisites
task :fire_bazooka => [:safety_check, :load_bazooka]
Run Code Online (Sandbox Code Playgroud)

但是,如何使用命名空间任务作为先决条件?显然,这不起作用:

task :photograph_destruction => :demolition:fire_bazooka
Run Code Online (Sandbox Code Playgroud)

ruby rake namespaces

28
推荐指数
2
解决办法
7407
查看次数

如何将数组作为参数传递给Rake任务?

我正在写一个Rake任务,我想传递一个数组作为其中一个参数.这就是我目前的方式.

task :change_statuses, :ids, :current_status, :new_status do |task, args|
  puts "args were #{args.inspect}"
end
Run Code Online (Sandbox Code Playgroud)

我尝试过以下方式运行任务:

# First argument as array
rake "change_statuses[[1,2,3], active, inactive]"

# First argument as string
rake "utility:change_account_statuses['1,2,3', foo, bar]"
Run Code Online (Sandbox Code Playgroud)

我的预期输出是:

args were {:ids=> [1,2,3], :current_status=> 2 , :new_status=> 3}
Run Code Online (Sandbox Code Playgroud)

但是,我在每种情况下的实际输出是:

args were {:ids=>"[1", :current_status=>"2", :new_status=>"3]"}
Run Code Online (Sandbox Code Playgroud)

如何将数组传递给Rake任务?

ruby rake

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

你通常如何在Rails中对项目进行排序?

我有一个名为票证的Rails应用程序示例,它可以查看和编辑出售给各个客户的虚构票证.在tickets_controller.rb里面def index,我有这个由脚手架生成的标准行:

@tickets = Ticket.find(:all)
Run Code Online (Sandbox Code Playgroud)

为了按名称对门票进行排序,我发现了两种可能的方法.你可以这样做:

@tickets = Ticket.find(:all, :order => 'name')
Run Code Online (Sandbox Code Playgroud)

......或者这样:

@tickets = Ticket.find(:all).sort!{|t1,t2|t1.name <=> t2.name}
Run Code Online (Sandbox Code Playgroud)

(提示:Ruby文档解释了sort!它将修改它正在排序的数组,而不是sort单独的,它返回已排序的数组但保持原始不变).

你通常使用什么策略?当你可以使用.sort!相对于:order => 'criteria'语法?

sorting ruby-on-rails

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

Ruby - 确定方法的起源?

发送消息时,Ruby对象会搜索它是否有一个按该名称响应的方法.其方法查找按以下顺序搜索,并使用它找到的第一个方法.

  1. 单身方法本身定义(也称为"本征类"的方法)
  2. 在其类中定义的方法
  3. 任何模块都以相反的顺序混合到它的类中(只有最早包含给定模块有任何影响 - 如果超类包含模块A,并且子类再次包含它,则在子类中忽略它;如果子类包含A然后B然后A,第二个A被忽略)(更新:注意这是在Module.prepend存在之前写的)
  4. 它的父类
  5. 混合到父类,父类的父类等的任何方法.

或者,更简单地说,它看起来自己,然后self.class.ancestors按照它们列出的顺序进行所有操作.

调用该方法时遵循此查找路径; 如果您创建一个类的实例,然后重新打开该类并添加一个方法或通过模块混合一个方法,现有实例将获得对该方法的访问权限.

如果所有这些都失败了,它会查看它是否有method_missing方法,或者它的类是否有,它的父类等.

我的问题是:除了手工检查代码,或使用类似的示例方法puts "I'm on module A!",你能告诉给定方法的来源吗?例如,你可以列出一个对象的方法,并看到"这个是在父类上,这个是在模块A上,这个是在类上并覆盖父类",等等?

ruby

27
推荐指数
3
解决办法
3537
查看次数

如何在Cygwin中使用我的.vimrc文件?

我刚刚在我的工作机器上安装了Cygwin,并希望使用我在家里的Linux机器上使用的.vimrc文件.

  • 这是可能的,还是需要Cygwin特定的设置?
  • 我在哪里放.vimrc文件?

我有点不确定我在Cygwin下的bash提示符下放入了什么目录,但我想我会在那里创建一个名为.vim的子目录,对吧?

vim cygwin

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

如何使用`should validate_presence_of`和自定义错误消息?

我正在用Rspec测试我的ActiveRecord模型.我刚刚在我的一个验证中添加了一条自定义错误消息,如下所示:

validates :accepted_terms_at, :presence => {:message => 'You must accept the Terms and Conditions to use this site.'}
Run Code Online (Sandbox Code Playgroud)

现在,以下测试失败:

it { should validate_presence_of(:accepted_terms_at) }
Run Code Online (Sandbox Code Playgroud)

......有错误Expected errors to include "can't be blank" when accepted_terms_at is set to nil.

因此测试失败,因为它正在查看验证错误消息并期望找到默认消息.

如何告诉Rspec新验证消息应该是什么?

我试过的

1)消息作为参数:

it {should validate_presence_of(:accepted_terms_at, :message => 'your message')}

这给出了错误 wrong number of arguments (2 for 1)

2)作为链式方法调用的消息

it {should validate_presence_of(:accepted_terms_at).with('your message')}

这会引发错误,因为没有with方法.

ruby activerecord rspec shoulda

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

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

jQuery Validate和Masked Input之间的冲突

我有一个表格,它同时使用jQuery ValidateMasked Input作为电话号码和美国邮政编码字段.

例如,对于美国邮政编码,屏蔽输入仅允许输入数字,并强制格式为"99999"或"99999-9999"(其中9可以是任意数字).验证规则要求相同.但在某些情况下,Validate会在某个字段实际有效时将其标记为无效.

代码细节

jQuery Validate在邮政编码字段中使用的正则表达式是^\d{5}$|^\d{5}\-\d{4}$.

我正在使用蒙面输入的面具是 .mask('99999?-9999')

重现步骤

当我执行以下操作时,会产生它们之间的冲突:

  • 填写无效的邮政编码(比方说,三位数)
  • 远离田野.Masked Input删除输入(预期行为),jQuery Validate将其标记为无效,因为它是空白的(也是预期的).
  • 返回邮政编码区并填写有效的5位数邮政编码.
  • 远离田野.它仍被标记为无效.这是出乎意料的.

如果我填写一个9位数的邮编,则不会发生此问题.

假设

我认为这个错误是因为在5位数字拉链的情况下,Masked Input暂时插入"-____"以向用户显示他们可以选择输入短划线和另外4位数字.这在模糊时被删除,但在删除之前,该字段已经过验证并失败,因为不允许使用下划线.

这个假设得到以下事实的支持:如果随后重新验证表单,则zip字段将通过.我这样做了两个方面:

  • 提交表格; 单击提交按钮,zip字段通过,表单提交时,将重新验证所有字段.
  • 通过设置blur重新验证该特定字段的事件.例如:

    $("#zipcode").blur(function(){$(this).closest('form').validate().element($(this));});

这可以作为一个hacky解决方案,但不是很令人满意,因为1)默认设置已经重新验证模糊,所以这是重复的,2)它需要除常规验证规则之外的其他代码.

还有其他人遇到过这个问题吗?您是否拥有比设置其他模糊事件监听器更优雅的解决方案

更新:应用hacky解决方案

即使应用上面的hacky解决方案也不如我想的那样好.例如,这不起作用:

$appDiv.delegate('input,select,textarea','blur',function(){
  $(this).closest('form').validate().element($(this));
});
Run Code Online (Sandbox Code Playgroud)

......也不是这样的:

$('input,select,textarea').live('blur',function(){
  $(this).closest('form').validate().element($(this));
});
Run Code Online (Sandbox Code Playgroud)

......但是这样做:

$('input,select,textarea').each(function(){
  $(this).blur(function(){
    $(this).closest('form').validate().element($(this));
  });
});
Run Code Online (Sandbox Code Playgroud)

由于这些元素是由AJAX加载的,因此.each每次加载表单部分时都必须运行该版本.

validation jquery maskedinput

25
推荐指数
4
解决办法
3万
查看次数