小编Nat*_*han的帖子

一种更优雅的方式来跳过Rails中的验证?

在我的用户模型中,我有电子邮件,first_name,last_name,密码等常见的嫌疑人.

我有几种情况需要跳过所有或部分验证.

目前,我有一个除非条件看起来像:

  validates :first_name, presence: :true, etc..., unless: :skip_first_name_validation?
  validates :last_name, presence: :true, etc..., unless: :skip_last_name_validation?
  validates :email, presence: :true, etc..., unless: :skip_email_validation?
Run Code Online (Sandbox Code Playgroud)

当然我也有:

  attr_accessor :skip_first_name_validation, :skip_last_name_validation, etc.
Run Code Online (Sandbox Code Playgroud)

然后我使用私有方法来检查每个方法的状态:

  def skip_first_name_validation?
    skip_first_name_validation
  end

  def skip_last_name_validation?
    skip_last_name_validation
  end

  def skip_email_validation?
    skip_email_validation
  end

  etc..
Run Code Online (Sandbox Code Playgroud)

从那里,每当我需要跳过验证时,我只是true在控制器中为每个人分配一个值.


所以这一切都很好,我想知道是否有更优雅的方式?

理想情况下,如果我可以为模型中的每个属性使用这样的简单条件,那将是很好的:

:skip_validation?
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,只需执行以下操作:

skip_validation(:first_name, :last_name, :password) = true
Run Code Online (Sandbox Code Playgroud)

有人可以提出我如何编程的建议吗?我不想使用现有的gem /库,但我想了解如何在rails中编程这种行为.谢谢.

validation ruby-on-rails

5
推荐指数
1
解决办法
1719
查看次数

使用嵌套路由与accepts_nested_attributes_for有什么区别?

我可能完全混淆了两者,但我发现这些表单可以使用基于嵌套路由的数组参数来促进关联,例如:

<%= form_for [@project, @task]...
Run Code Online (Sandbox Code Playgroud)

或者fields_for如果父类accepts_nested_nested_attributes_for是孩子,则使用帮助器.

这些方法之间的区别/权衡是什么?

forms ruby-on-rails associations nested-attributes

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

以下MySQL csv导入查询术语是什么意思?

对于MySQL,我找到了以下查询来导入CSV文件:

LOAD DATA LOCAL INFILE '/example.csv'
INTO TABLE exampletable
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(example_field_name,example_field_city,example_field_state);
Run Code Online (Sandbox Code Playgroud)

我刚刚开始学习,所以请原谅这个微不足道的问题,但我想知道是否有人能够以比MySQL帮助文档中更简单的方式解释以下部分:

这是什么意思?

OPTIONALLY ENCLOSED BY '"'
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

ESCAPED BY '\\'
Run Code Online (Sandbox Code Playgroud)

\ r和\n在下面的含义是什么?

LINES TERMINATED BY '\r\n'
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

mysql csv import

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

有人可以在Rails 3.2中解释严格的质量分配吗?

我刚刚开始使用Rails 3.2,当我使用create或update_attributes时,我似乎总是得到批量分配错误.这是正常的吗?我应该如何创建和更新记录?

ruby-on-rails ruby-on-rails-3.2

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

何时/为什么我想要在方法上引发异常?

我注意到rails中的一些方法使用!运算符来引发异常,如果无效的话.例如,User.create!

为什么以及何时我想使用这样的东西?

谢谢.

ruby ruby-on-rails

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

使用super with class_eval

我有一个应用程序,其中包含用于添加客户端自定义的核心类的模块.

我发现class_eval是覆盖核心类中方法的好方法,但有时我想避免重写整个方法,只需遵循原始方法.

例如,如果我有一个调用的方法account_balance,那么在我的模块中执行类似这样的操作会很好(即包含在类中的模块):

module CustomClient
  def self.included base
    base.class_eval do
      def account_balance
        send_alert_email if balance < min
        super # Then this would just defer the rest of the logic defined in the original class
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

但是使用class_eval似乎将该super方法从查找路径中取出.

有谁知道如何解决这个问题?

谢谢!

ruby metaprogramming

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

如何使用指令和"控制器为"语法的ui-router状态?

使用ui-router时,我设置如下状态:

$stateProvider
  .state 'product',
    url: '/catalog/product',
    templateUrl: 'app/product/product.html',
Run Code Online (Sandbox Code Playgroud)

唯一的问题是,我的控制器在指令中,而不是作为独立的控制器服务.那么如何告诉ui-router打我的指令而不是模板呢?

否则我不确定如何将模板范围绑定到我的指令中定义的控制器.

angularjs angular-ui-router

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

将$(this)传递给函数

我正在努力实现这个ColorPicker插件:

http://www.eyecon.ro/colorpicker/

我有一个包含多个字段的表单,我希望在选择任何字段时弹出颜色选择器,并根据所做的选择更改值.

这是我的代码:

jQuery(function($) {
    function changeColor(e) {
        e.preventDefault();
        $(this).ColorPicker({
            onChange: function(hsb, hex, rgb) {
                $(this).attr('value', '#' + hex)
            }
        });
    }
    $('form.niceform input').live('mouseup', changeColor);
})
Run Code Online (Sandbox Code Playgroud)

由于某种原因,$(this).attr ...部分没有认识到$(this)是当前选择的字段.

有人能帮助我理解我做错了什么吗?

谢谢!

javascript jquery

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

为什么人们在PHP函数中设置默认参数?

例:

function example($x = "")
{
    Do something
}
Run Code Online (Sandbox Code Playgroud)

默认情况下,$ x是否已空?为什么要明确设置?

php parameters function

0
推荐指数
1
解决办法
124
查看次数

有没有办法将 git 中未暂存的文件复制到不同的位置?

我想“提取”(如果这是一个好词)只是未暂存的文件并将它们复制到不同的目录。我不想要 repo 中的任何其他文件......只是这些未暂存的文件。

是否有 git 命令或 shell + git 命令来执行此操作?


更新问题以回答问题:

  • 我想保留文件结构和文件
  • 我对 git 和 shell 巫术的任何组合持开放态度

git shell

0
推荐指数
1
解决办法
274
查看次数