在rails中给出以下控制器:
class AccountsController < ApplicationController
respond_to :json, :xml
def update
@account = Account.where(uuid: params[:id]).first
unless @account.nil?
if @account.update_attributes params[:account]
respond_with @account, location: account_url(@account)
else
respond_with error_hash, status: :unprocessable_entity, root: :error, location: api_account_url(@account)
end
else
respond_with error_hash, status: :not_found, root: :error, location: accounts_url
end
end
def error_hash
{ :example => "Example for this question", :parameter => 42 }
end
end
Run Code Online (Sandbox Code Playgroud)
我希望PUT
对/ accounts/update/的请求执行以下操作
204 (No Content)
成功消息.(我已经将它设置为返回@account,这将是不错的,但没什么大不了的.这里的204很好.)422 (Unprocessable Entity)
错误消息以及xml/json以表示错误.404 (Not Found)
错误消息以及xml/json以表示错误.实际发生的是:
对于那些不知道Pentago是什么的人来说,问题并不是那么重要,但足以说你有一个带有四个象限的6x6板.每个玩家轮流放置一块然后旋转一个象限.当一个玩家连续五次(在玩家的旋转阶段之前或之后)赢得游戏.
我正在编写一个算法来玩许多不同的随机 Pentago游戏.然而,由于它是完全随机的,我认为没有好办法绕过检查是否有人在转弯的位置和旋转阶段之间获胜(否则,你可能会意外地旋转获胜的动作).最后,我计划将其重写为涉及更多策略而不是完全随机的地方,但这是出于统计目的,因此随机性很好(事实上在某些方面非常有用).
无论如何,目前我在Matlab编程,空板看起来像这样
eeeeee
eeeeee
eeeeee
eeeeee
eeeeee
eeeeee
Run Code Online (Sandbox Code Playgroud)
随着比赛的进行,董事会充满了w
's b
' 和's'.我检查获胜板的方式是通过对每个列和每一行(以及每个对角线)进行迭代,通过对返回的"字符串"执行正则表达式检查来查看是否有赢家.
简而言之,我的问题是:
是否有更有效的方法来确定Pentago董事会的获胜者?
我有三个接口:
public interface Combinable<V> {
V add(V other);
}
public interface Sublistable<V> {
boolean hasSublist();
List<V> getSublist();
void setSublist(List<V> sublist);
}
public interface HasUniqueIdentifier {
String getUniqueIdentifier();
}
Run Code Online (Sandbox Code Playgroud)
和4个实现部分或全部这些接口的类:
public class Grandparent implements HasUniqueIdentifier,
Sublistable<Parent>,
Combinable<Grandparent>
{ List<Parent> sublist; ... }
public class Parent implements HasUniqueIdentifier,
Sublistable<Child>,
Combinable<Parent>
{ List<Child> sublist; ... }
public class Child implements HasUniqueIdentifier,
Sublistable<Grandchild>,
Combinable<Child>
{ List<Grandchild> sublist; ... }
public class Grandchild implements HasUniqueIdentifier,
Combinable<Grandchild>
{ }
Run Code Online (Sandbox Code Playgroud)
我想有一个执行以下操作的通用方法:
public <V, T extends HasUniqueIdentifier & …
Run Code Online (Sandbox Code Playgroud) 给定一个数据库有两个表X
和Y
,我有一个查询,应LEFT JOIN
在属性的两个表X.a1
和Y.b1
.我使用了以下查询:
SELECT X.a1, X.a2, Y.b1, Y.b2 FROM X LEFT JOIN Y ON (X.a1 = Y.b1)
Run Code Online (Sandbox Code Playgroud)
我认为即使Y
目前是一张空桌,这也足够好了.但是,查询中断,因为表Y
似乎是空的.有没有办法重新格式化这个查询,以便即使Y
是一个空表,LEFT JOIN
不会破坏?或者我只需要始终确保表中有一些数据Y
,即使它与表中的任何内容都不匹配X
(因此LEFT JOIN
).
根据我的理解git pull --rebase origin master
,它应该相当于运行以下命令:
(from branch master): $ git fetch origin
(from branch master): $ git rebase origin/master
Run Code Online (Sandbox Code Playgroud)
我似乎找到了一些不按预期工作的情况.在我的工作区中,我有以下设置:
origin/master
引用分支master
origin
master
设置为跟踪origin/master
,并由几个提交落后于主.feature
设置为跟踪当地的分支机构master
,以及领先的master
通过多次提交.有时,我会通过运行以下一系列步骤来丢失提交
(from branch master): $ git pull --rebase
(from branch master): $ git checkout feature
(from branch feature): $ git pull --rebase
Run Code Online (Sandbox Code Playgroud)
在这一点上,我所feature
面临的一些提交现在已经丢失了.现在,如果我重置我的位置,而是执行以下操作:
(from branch feature): $ git reset --hard HEAD@{2} # rewind to before …
Run Code Online (Sandbox Code Playgroud) 我有一个网络服务器,用于托管我在Android平板电脑上构建的应用程序的数据.数据变化相当频繁,但我发现平板电脑和手机并不总是与数据连接,并且用户已经可以访问他们之前查看过的数据.
我希望应用程序尽可能从Web服务器提取数据,并且当不可能时,从手机上的SQLite服务器(或任何正确的方法)中提取数据.
是否已经制定了实施或实践来实现这一目标?如果是这样,实现这样一个功能的当前方法是什么?是否可以采用相同的方法对数据进行更改,然后在数据连接恢复时推送这些更改?
我正在尝试为已经存在的模块创建一些 TypeScript 定义。在要实现的特定接口中,签名如下所示:
type NextFunction<T> = () => T;
type Response = string[] | Promise<string[]>;
interface IPage {
getBodyClasses(next: NextFunction<Response>): Response;
}
Run Code Online (Sandbox Code Playgroud)
参数和返回结构是固定的,我真的希望能够让 TypeScript 推断出我重写的方法的参数类型。但是,当我创建覆盖时,我发现该参数隐式具有类型any
。
class Page implements IPage {
getBodyClasses(next) {
return next();
}
}
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以标记getBodyClasses
为专用覆盖,以便自动推断参数的类型?如果我输入as ,它已经说不Page
正确地实现了接口,所以我不太明白为什么它不能推断出 的类型与接口的类型相同。next
number
next