比如说,如果我们生成了一个模型
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
如何反射性地获取具有给定名称的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()叫两次.
怎么能更好地重写呢?理想情况下,如果我能将它变成一个简单的单行程,那就太棒了.
我有一个Ext.grid.Panel,我想按字段分组,但要在分组标题中显示不同的字段.例如,如果我的模型有status_id和status_name字段,我想分组status_id,但显示status_name在组标题中.
我玩过这个groupHeaderTpl选项但到目前为止还没有运气.如何才能做到这一点?
我有一个用户模型.我可以检查用户是否是管理员a_user.try(:admin?).
我想定义一个命名范围,让所有用户在最近X分钟内更新,而不是管理员.到目前为止,我有:
scope :recent, lambda { { :conditions => ['updated_at > ?', 5.minutes.ago] } }
Run Code Online (Sandbox Code Playgroud)
这成功地使所有用户在最近5分钟内更新,但如何合并管理员检查?我不知道如何try()在范围内调用用户的实例...
我只想在我的Rails项目中的某个HTML视图中打印出来,以及一堆其他有用的信息.像"当前上升时间= 4天11小时54分2秒"或"自2013年8月23日起上升"之类的东西.
令人惊讶的是,无法在任何地方找到任何信息.也许有一种通用的Rack方式.
按照此处的指南,我正在尝试设置 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
我正在编写一个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的容器类,因为我可以只调用put或get在地图上.但是每当我想从地图中获取一个值时,我都必须转换为预期的类型.我不喜欢那种声音.
谁有更好的解决方案?是否有类似Android的资源系统可以在更小,更临时的规模上使用?
Heroku具有"发布"功能,允许您回滚到特定的部署版本.我已经看到很多关于回滚的信息,但是如何在回滚后再次前进?
基本上,我想回滚到一个特定的版本,看看它是否是引入一些错误的版本.我有一种感觉它不是,所以我很确定我会在发现后立即恢复(向前推进)到最新版本.
如果Heroku发布不可行,我想它与Git有关.也就是说,如果我使用Git来做这件事,我不希望触及我当地的Git repo的历史.我只希望Heroku repo能够回滚/转发.
又怎样?
我似乎无法执行我之前分配给变量的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) 我有一个场景,我的一个客户想要将 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 文件。:(
.net ×2
c# ×2
javascript ×2
rails-models ×2
android ×1
duration ×1
extjs ×1
extjs4 ×1
file ×1
git ×1
google-api ×1
grid ×1
grouping ×1
gulp ×1
heroku ×1
inheritance ×1
java ×1
lambda ×1
linq ×1
model ×1
mv ×1
named-scope ×1
node.js ×1
post ×1
properties ×1
propertyinfo ×1
rack ×1
reflection ×1
resources ×1
rollback ×1
ruby ×1
scope ×1
time ×1
webhooks ×1