Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails REST设计问题-账户间转账_Ruby On Rails_Rest_Accounting - Fatal编程技术网

Ruby on rails RubyonRails REST设计问题-账户间转账

Ruby on rails RubyonRails REST设计问题-账户间转账,ruby-on-rails,rest,accounting,Ruby On Rails,Rest,Accounting,我有一个帐户类,想实现转账屏幕,允许用户在两个帐户之间转账 我将如何完全实现这一点 我有标准的帐户和休息动作,这很好。但我将如何实施转移 通常我只会向accounts controller和相应的视图添加一个名为“transfer”(调用以呈现屏幕)和“transfer_update”(在提交时调用)的方法,但我认为这不是很完整 谢谢 Joel这本书提供了一个很好的例子,说明了如何解决这个确切的问题,更好的是,Rails中的例子:) 如果你不能从图书馆借书,那就买吧。它没有那么昂贵,而且它有很多

我有一个帐户类,想实现转账屏幕,允许用户在两个帐户之间转账

我将如何完全实现这一点

我有标准的帐户和休息动作,这很好。但我将如何实施转移

通常我只会向accounts controller和相应的视图添加一个名为“transfer”(调用以呈现屏幕)和“transfer_update”(在提交时调用)的方法,但我认为这不是很完整

谢谢 Joel

这本书提供了一个很好的例子,说明了如何解决这个确切的问题,更好的是,Rails中的例子:)


如果你不能从图书馆借书,那就买吧。它没有那么昂贵,而且它有很多关于如何实现REST和ROA的有用信息。

您提到了您的Account类,但没有提到表示帖子或日记的类。见()

使用所引用站点的语言,为转账创建的“资源”是一个日记账(条目),由两个过账组成,每个过账到不同的账户。所以你需要一个JournalsController。要添加传输,您需要将其发布到JournalsController的索引操作。参数包括日期、金额、借方账户、贷方账户、收款人、备忘录等


使用REST on AccountsController将用于创建、更新或删除帐户,而不是帐户包含的过帐(事务)。

执行传输的restful请求示例

POST /transfers HTTP/1.1
Host: restful.bank.com
Content-Type: application/json; charset=utf-8
Accept: application/json

{ "transfer": {
  "source_account_id": "9d2d894c242f391a",
  "destination_account_id": "83ac039d8302abd5"
  "amount": "$200.00"
} }
相应的反应

HTTP/1.1 201 Created
Date: #{right-now}
Content-Type: application/json; charset=utf-8
Location: https://restful.bank.com/transfers/938ac39cb5ddccfa

{ "transfer": {
  "id": "938ac39cb5ddccfa",
  "href": "https://restful.bank.com/transfers/938ac39cb5ddccfa",
  "source_account_id": "9d2d894c242f391a",
  "destination_account_id": "83ac039d8302abd5"
  "amount": "$200.00"
} }
但是这里使用了动词“transfer”,这不是表示它不是REST吗?@jhegedus“transfer”一词在这里用作名词,而不是动词。