小编Lik*_*ell的帖子

Github未来/背后指标的含义

用简单的语言(希望用一个简单的例子),Github repo分支的前后指标是什么意思?

那个分支的影响和它所受到的关注是什么?是否"落后"是分支的坏兆头?

branch github repository

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

Rails 3验证:presence => false

这是我期望的一个非常直截了当的问题,但我无法在指南或其他地方找到明确的答案.

我在ActiveRecord上有两个属性.我想要一个存在,另一个是零或空字符串.

我该怎么做相同的:presence => false?我想确保值为零.

validates :first_attribute, :presence => true, :if => "second_attribute.blank?"
validates :second_attribute, :presence => true, :if => "first_attribute.blank?"
# The two lines below fail because 'false' is an invalid option
validates :first_attribute, :presence => false, :if => "!second_attribute.blank?"
validates :second_attribute, :presence => false, :if => "!first_attribute.blank?"
Run Code Online (Sandbox Code Playgroud)

或许有更优雅的方式来做到这一点......

我正在运行Rails 3.0.9

validation ruby-on-rails

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

如何在Ruby类定义的末尾设置一个钩子来运行代码?

我正在构建一个插件,允许开发人员在类定义中使用简单声明向类添加各种功能(遵循正常的acts_as模式).

例如,使用插件的代码可能看起来像

class YourClass
  consumes_my_plugin option1: :value1, specific_method_to_use: :your_method
end
Run Code Online (Sandbox Code Playgroud)

我的问题出现了,因为我想错误地检查为:specific_method_to_use参数提供的值是否作为方法存在,但通常组织和加载代码的方式,该方法尚不存在.

我的插件中的代码暂时看起来像这样:

module MyPlugin
  extend ActiveSupport::Concern

  module ClassMethods
    def consumes_my_plugin(options = {})
      raise ArgumentError.new("#{options[:specific_method_to_use]} is not defined") if options[:specific_method_to_use].present? && !self.respond_to?(options[:specific_method_to_use])
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

这可行:

class YourClass
  def your_method; true; end

  consumes_my_plugin option1: :value1, specific_method_to_use: :your_method
end
Run Code Online (Sandbox Code Playgroud)

但这是大多数人编写代码的方式,它不会:

class YourClass
  consumes_my_plugin option1: :value1, specific_method_to_use: :your_method

  def your_method; true; end
end
Run Code Online (Sandbox Code Playgroud)

如何在YourClass加载时失败?我希望它出错,而不是在运行时使用NoMethodError.我可以推迟执行引发ArgumentError的行,直到加载整个类,或者做一些其他聪明的事情来实现吗?

ruby plugins loading

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

使用本地散列/数组更新多个记录的单个 Postgres 查询

我想使用单个查询来使用 Ruby 哈希或数组更新 Postgres 数据库中的许多记录,而不必遍历每条记录并调用单独的更新。

# {:id => :color}
my_hash = {
  1 => 'red',
  2 => 'blue',
  3 => 'green'
}
Run Code Online (Sandbox Code Playgroud)

我不想这样做,因为它执行三个串行查询:

my_hash.each do |id, color|
  MyModel.where(id: id).update_all(color: color)
end
Run Code Online (Sandbox Code Playgroud)

我想怎么做:

MyModel.connection.execute <<-SQL
  UPDATE my_models
    SET color=something
    FROM somehow_using(my_hash)
    WHERE maybe_id=something
SQL
Run Code Online (Sandbox Code Playgroud)

postgresql sanitization ruby-on-rails query-optimization sql-update

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

C#WPF绑定行为

我是一位经验丰富的程序员,但对WPF来说是新手.我已将表单上的文本块绑定到对象属性,但它没有像我在设置属性时所期望的那样更新表单.绑定似乎正确完成 - 如果我使用更新表单更改属性的按钮进行故障排除,但是当我最初通过解析本地XML文件在表单的构造函数中设置属性时,它不会更新.

我正在使用C#和VS2010.有人可以指导我做几个步骤,或者让我参考一本让我超越这个驼峰的书或编码工具.另外,请注意我选择通过在windowsclient.net上模仿"我如何:构建我的第一个WPF应用程序"中使用的范例来构建方式.如果您认为我的方法不对,我会很感激指向更好的教程.

表格XAML:

<Window ...
  xmlns:vm="clr-namespace:MyProjectWPF.ViewModels">
  <Grid>
    <Grid.DataContext>
      <vm:MyConfigurationViewModel />
    </Grid.DataContext>

    <TextBlock Name="textBlock4" Text="{Binding Path=Database}" />
  </Grid>
Run Code Online (Sandbox Code Playgroud)

MyConfigurationViewModel类定义:

class MyConfigurationViewModel : INotifyPropertyChanged
{
  private string _Database;

  public string Database
  {
    get { return _Database; }
    set { _Database = value; OnPropertyChanged("Database"); }
  }

  public void LoadConfiguration()
  {
    XmlDocument myConfiguration = new XmlDocument();
    myConfiguration.Load("myfile.xml");
    XmlNode root = myConfiguration.DocumentElement;

    Database = root["Database"].InnerText;
  }

  public event PropertyChangedEventHandler PropertyChanged;

  private void OnPropertyChanged(string Property)
  {
    if (PropertyChanged != null)
      PropertyChanged(this, new PropertyChangedEventArgs(Property));
  } …
Run Code Online (Sandbox Code Playgroud)

c# wpf binding

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