小编Xåp*_* -的帖子

在Ruby on Rails中,如果我们生成了一个模型"Animal",现在想拥有"Dog",我们应该怎么做呢?

比如说,如果我们生成了一个模型

rails generate model animal name:string birthday:date
Run Code Online (Sandbox Code Playgroud)

现在我们想要创建其他模型来继承它(比如Dog和Cat),我们应该rails generate model再次使用还是自己添加文件?如果我们使用,我们如何指定Dog应该继承Animal rails generate model

我想如果我们使用rails generate model而不是自己添加模型文件,那么也会为我们创建单元测试文件和fixture文件.还添加了迁移文件,除非它使用MongoDB,否则将不会有迁移文件.

inheritance ruby-on-rails single-table-inheritance rails-models

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

如何获取具有指定名称的DataMemberAttribute的属性?

如何反射性地获取具有给定名称的DataMember的属性(假设每个DataMember都有唯一的名称)?例如,在以下代码中,具有名称"p1"的DataMember的属性是PropertyOne:

[DataContract(Name = "MyContract")]
public class MyContract
{
    [DataMember(Name = "p1")]
    public string PropertyOne { get; set; }

    [DataMember(Name = "p2")]
    public string PropertyTwo { get; set; }

    [DataMember(Name = "p3")]
    public string PropertyThree { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

目前,我有:

string dataMemberName = ...;

var dataMemberProperties = typeof(T).GetProperties().Where(p => p.GetCustomAttributes(typeof(DataMemberAttribute), false).Any());

var propInfo = dataMemberProperties.Where(p => ((DataMemberAttribute)p.GetCustomAttributes(typeof(DataMemberAttribute), false).First()).Name == dataMemberName).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

这有效,但感觉可以改进.我特别不喜欢那种GetCustomAttributes()叫两次.

怎么能更好地重写呢?理想情况下,如果我能将它变成一个简单的单行程,那就太棒了.

.net c# reflection properties propertyinfo

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

如何在Ext网格分组标题中显示不同字段的值?

我有一个Ext.grid.Panel,我想按字段分组,但要在分组标题中显示不同的字段.例如,如果我的模型有status_idstatus_name字段,我想分组status_id,但显示status_name在组标题中.

我玩过这个groupHeaderTpl选项但到目前为止还没有运气.如何才能做到这一点?

javascript grid grouping extjs extjs4

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

如何在命名范围内拥有多个条件?

我有一个用户模型.我可以检查用户是否是管理员a_user.try(:admin?).

我想定义一个命名范围,让所有用户在最近X分钟内更新,而不是管理员.到目前为止,我有:

scope :recent, lambda { { :conditions => ['updated_at > ?', 5.minutes.ago] } }
Run Code Online (Sandbox Code Playgroud)

这成功地使所有用户在最近5分钟内更新,但如何合并管理员检查?我不知道如何try()在范围内调用用户的实例...

scope named-scope model ruby-on-rails rails-models

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

有没有办法获得Rails服务器运行所用的时间?

我只想在我的Rails项目中的某个HTML视图中打印出来,以及一堆其他有用的信息.像"当前上升时间= 4天11小时54分2秒"或"自2013年8月23日起上升"之类的东西.

令人惊讶的是,无法在任何地方找到任何信息.也许有一种通用的Rack方式.

ruby time rack duration ruby-on-rails

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

尝试注册 Google Drive webhook 时出现“必需参数:pageToken”错误

按照此处的指南,我正在尝试设置 Google Drive“推送通知”(网络钩子),以便我可以观察所有文件更改。我需要发送一次性 POST 请求https://www.googleapis.com/drive/v3/changes/watch以初始“注册”网络钩子。但我似乎无法成功地做到这一点;使用curl我收到400 Bad Request回复。

这是我的 HTTP 请求,通过curl

curl 'https://www.googleapis.com/drive/v3/changes/watch' \
-X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access_token' \
--data-binary '{"id": "webhook", "type": "web_hook", "address": "https://example.com/webhooks", "token": "example"}' \
-vvvv
Run Code Online (Sandbox Code Playgroud)

响应:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Required parameter: pageToken",
    "locationType": "parameter",
    "location": "pageToken"
   }
  ],
  "code": 400,
  "message": "Required parameter: pageToken"
 }
}
Run Code Online (Sandbox Code Playgroud)

我从pageToken哪里得到它?另外,我如何将它包含在请求中(例如作为标头)?指南中没有提到它。

post google-api webhooks http-status-code-400 google-drive-api

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

是否有类似于Android资源系统的更小规模?

我正在编写一个Android应用程序,我需要在特定活动中访问大量变量(基本上,这是一个小型游戏的"数据模型").目前,我将它们存储在一个巨大的"容器"类中,因此我可以轻松地引用它们而不会污染我的活动类.例:

public class Model
{
    private int a;
    private String b;
    private float c;

    ...

    public int getA()
    {
        return a;
    }

    public void setA(int a)
    {
        this.a = a;
    }

    public String getB()
    {
        return b;
    }

    public void setB(String b)
    {
        this.b = b;
    }

    public float getC()
    {
        return c;
    }

    public void setC(float c)
    {
        this.c = c;
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,它们是不同类型的,并且都有吸气剂和固定剂.但是像这样存储起来很麻烦.我也想迭代变量的组,但是使用这种平坦的getter/setter格式我不能真正做到这一点.

我知道Android的资源系统,但它似乎不适合这个,因为变量不是应用程序范围/全局的.它们仅在此特定活动的生命周期中存在,并且每次活动开始时都以编程方式生成.

我想把它们全部放到一个Map<String, Object>结构中,我可以通过一个String键引用每个变量.这样就不需要有一个包含大量getter和setter的容器类,因为我可以只调用putget在地图上.但是每当我想从地图中获取一个值时,我都必须转换为预期的类型.我不喜欢那种声音.

谁有更好的解决方案?是否有类似Android的资源系统可以在更小,更临时的规模上使用?

java resources android android-activity android-resources

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

Heroku发布 - 如何在回滚后前滚?

Heroku具有"发布"功能,允许您回滚到特定的部署版本.我已经看到很多关于回滚的信息,但是如何在回滚后再次前进?

基本上,我想回滚到一个特定的版本,看看它是否是引入一些错误的版本.我有一种感觉它不是,所以我很确定我会在发现后立即恢复(向前推进)到最新版本.

如果Heroku发布不可行,我想它与Git有关.也就是说,如果我使用Git来做这件事,我不希望触及我当地的Git repo的历史.我只希望Heroku repo能够回滚/转发.

又怎样?

git version-control ruby-on-rails heroku rollback

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

分配lambda表达式会导致它以后不执行?

我似乎无法执行我之前分配给变量的lambda表达式.这是我放在一起的一个小型C#示例程序:

public class Program
{
    public static void Main(string[] args)
    {
        int[] notOrdered = { 3, 2, 5, 8, 1, 4, 7, 9, 6 };
        Print(notOrdered);

        IEnumerable<int> ascOrdered = Order(notOrdered, true);
        Print(ascOrdered);

        IEnumerable<int> descOrdered = Order(notOrdered, false);
        Print(descOrdered);
    }

    static IEnumerable<T> Order<T>(IEnumerable<T> enumerables, bool ascending)
    {
        Expression<Func<T, object>> selector = (z) => z; // simple for demo purposes; pretend it's complex
        if (ascending)
            return enumerables.OrderBy(z => selector);
        else
            return enumerables.OrderByDescending(z => selector);
    }

    static void Print<T>(IEnumerable<T> enumerables)
    {
        foreach(T enumerable …
Run Code Online (Sandbox Code Playgroud)

.net c# linq lambda linq-expressions

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

在 gulp.dest 之后删除 gulp.src 文件?

我有一个场景,我的一个客户想要将 LESS 文件放入一个src目录(通过 FTP),并让它们自动作为 CSS 输出到一个build目录。对于每个 LESS 文件,一旦创建了其生成的 CSS 文件,就应将其从src目录中删除。我怎样才能用 Gulp 做到这一点?

我的当前gulpfile.js是:

var gulp = require("gulp");
var watch = require("gulp-watch");
var less = require("gulp-less");

watch({ glob: "./src/**/*.less" })
  .pipe(less())
  .pipe(gulp.dest("./build"));
Run Code Online (Sandbox Code Playgroud)

这成功地检测到新的 LESS 文件被放入src目录中,并将 CSS 文件输出到build. 但之后它不会清理 LESS 文件。:(

javascript file mv node.js gulp

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