小编ash*_*ays的帖子

rails中的PUT请求不会更新respond_with调用的状态

在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/的请求执行以下操作

  1. 如果id存在,并且update_attributes调用成功,则传递204 (No Content)成功消息.(我已经将它设置为返回@account,这将是不错的,但没什么大不了的.这里的204很好.)
  2. 如果id存在但数据不正确,则提供422 (Unprocessable Entity)错误消息以及xml/json以表示错误.
  3. 如果id不存在,则传递404 (Not Found)错误消息以及xml/json以表示错误.

实际发生的是:

  1. 交付204没有身体. …

json ruby-on-rails

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

Pentago板上的获奖者

对于那些不知道Pentago是什么的人来说,问题并不是那么重要,但足以说你有一个带有四个象限的6x6板.每个玩家轮流放置一块然后旋转一个象限.当一个玩家连续五次(在玩家的旋转阶段之前或之后)赢得游戏.

我正在编写一个算法来玩许多不同的随机 Pentago游戏.然而,由于它是完全随机的,我认为没有好办法绕过检查是否有人在转弯的位置和旋转阶段之间获胜(否则,你可能会意外地旋转获胜的动作).最后,我计划将其重写为涉及更多策略而不是完全随机的地方,但这是出于统计目的,因此随机性很好(事实上在某些方面非常有用).

无论如何,目前我在Matlab编程,空板看起来像这样

eeeeee
eeeeee
eeeeee
eeeeee
eeeeee
eeeeee
Run Code Online (Sandbox Code Playgroud)

随着比赛的进行,董事会充满了w's b' 和's'.我检查获胜板的方式是通过对每个列和每一行(以及每个对角线)进行迭代,通过对返回的"字符串"执行正则表达式检查来查看是否有赢家.

简而言之,我的问题是:

是否有更有效的方法来确定Pentago董事会的获胜者?

math performance matlab

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

使用Java Generics通过一个对象列表(每个对象具有另一个对象列表)来递归对象

我有三个接口:

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)

java generics

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

MySQL问题:空表上的LEFT JOIN

给定一个数据库有两个表XY,我有一个查询,应LEFT JOIN在属性的两个表X.a1Y.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).

mysql left-join

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

理解"git pull --rebase"vs"git rebase"

根据我的理解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引用分支masterorigin
  • 分支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)

git version-control rebase

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

保留来自在线服务的用户数据,以便在Android应用程序上"离线查看"

我有一个网络服务器,用于托管我在Android平板电脑上构建的应用程序的数据.数据变化相当频繁,但我发现平板电脑和手机并不总是与数据连接,并且用户已经可以访问他们之前查看过的数据.

我希望应用程序尽可能从Web服务器提取数据,并且当不可能时,从手机上的SQLite服务器(或任何正确的方法)中提取数据.

是否已经制定了实施或实践来实现这一目标?如果是这样,实现这样一个功能的当前方法是什么?是否可以采用相同的方法对数据进行更改,然后在数据连接恢复时推送这些更改?

database sqlite android synchronization

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

从 TypeScript 中覆盖的接口自动推断类型

我正在尝试为已经存在的模块创建一些 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正确地实现了接口,所以我不太明白为什么它不能推断出 的类型与接口的类型相同。nextnumbernext

javascript types typescript

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