生成用户选择模型控制器的 URL 二维码#Show in Rails
Generate qr-code which is URL of user-selected-Model's Controller#Show in Rails
在 rails 中寻找有关 design/architecture 的一般指导。
用例/目标:
用户可以到网站上搜索Mortgages
(数据库中的型号)的列表:
- 用户将select单次按揭
- 在 selecting 之后,他们将在屏幕上收到一个 QR 码,即 URL 用于
MortgageController#show
方法,用于所选的特定 Mortgage
。
强调一下:当他们select抵押的时候,他们不会去MortgageController#show
,而是需要返回一个页面包含代表他们 select 编辑的抵押贷款的 URL 到正确 MortgageController#show
的二维码。
上下文: QR 代码页将与物理抵押文件一起打印、扫描到文档成像系统中。文档成像系统将解析 QR 码,点击 MortgageController#show
,接收 JSON "describing"/代表特定扫描的 Mortgage
。 (使用指向 JSON 的 Qr 码,而不是原始的 JSON,因为扫描仪使用 QR 码比使用文本更好。)
我想我非常了解事情的 MortgageController#show
方面——它只是返回模型 Mortgage
的 JSON 表示。
事情变得模糊:
我想用户search/select抵押的地方可能是MortgageController#index
方法。
但是如果我对每个 Mortgage
都有一个 get QR Code
link,它是否应该像 qr_code
这样在 MortgageController
上使用自定义方法,这决定了合适的URL需要做成二维码返回吗?
我不确定如何组织生成指向 MortgageController
的 show
方法的二维码的部分,以及它的管道将如何工作。是否可以从 Model
的列表中知道哪个 select 来自 link 或 form_for
标签,如果那个 link 没有不使用控制器的标准 show
方法吗? (因为我不能使用那个方法...那是将要返回的方法 JSON!)
我对此很困惑,而且是 Rails 的新手。任何想法表示赞赏!
我会尽力回答您的所有问题:
- 是的,列出抵押贷款的行动应该是
MortgageController#index
- 对于 QR 视图,您有多种选择。一种方式,可能是最纯 REST 的方式,您将使用
format: :qr
对该特定抵押调用 MortgageController#show
,您为该场合定义的 MimeType
(URL 将是 /mortgages/2.qr
,form_for 块中的路径将是 mortgage_path(mortgage, format: :qr)
。在控制器端,您将使用 respond_to |format|
结构处理此问题。
- 另一个更简单的选择是定义一个非 REST 操作来呈现 QR:
MortgageController#qr_code
。您在 routes.rb
文件中这样定义的操作:
resources :mortgages do
get :qr_code, on: :member
end
- 作为奖励曲目(未包含在您的问题中),您可以使用 rqrcode_png gem 在
/mortgage/3/qr_code
视图中生成和打印二维码。
在 rails 中寻找有关 design/architecture 的一般指导。
用例/目标:
用户可以到网站上搜索Mortgages
(数据库中的型号)的列表:
- 用户将select单次按揭
- 在 selecting 之后,他们将在屏幕上收到一个 QR 码,即 URL 用于
MortgageController#show
方法,用于所选的特定Mortgage
。
强调一下:当他们select抵押的时候,他们不会去MortgageController#show
,而是需要返回一个页面包含代表他们 select 编辑的抵押贷款的 URL 到正确 MortgageController#show
的二维码。
上下文: QR 代码页将与物理抵押文件一起打印、扫描到文档成像系统中。文档成像系统将解析 QR 码,点击 MortgageController#show
,接收 JSON "describing"/代表特定扫描的 Mortgage
。 (使用指向 JSON 的 Qr 码,而不是原始的 JSON,因为扫描仪使用 QR 码比使用文本更好。)
我想我非常了解事情的 MortgageController#show
方面——它只是返回模型 Mortgage
的 JSON 表示。
事情变得模糊:
我想用户search/select抵押的地方可能是MortgageController#index
方法。
但是如果我对每个 Mortgage
都有一个 get QR Code
link,它是否应该像 qr_code
这样在 MortgageController
上使用自定义方法,这决定了合适的URL需要做成二维码返回吗?
我不确定如何组织生成指向 MortgageController
的 show
方法的二维码的部分,以及它的管道将如何工作。是否可以从 Model
的列表中知道哪个 select 来自 link 或 form_for
标签,如果那个 link 没有不使用控制器的标准 show
方法吗? (因为我不能使用那个方法...那是将要返回的方法 JSON!)
我对此很困惑,而且是 Rails 的新手。任何想法表示赞赏!
我会尽力回答您的所有问题:
- 是的,列出抵押贷款的行动应该是
MortgageController#index
- 对于 QR 视图,您有多种选择。一种方式,可能是最纯 REST 的方式,您将使用
format: :qr
对该特定抵押调用MortgageController#show
,您为该场合定义的MimeType
(URL 将是/mortgages/2.qr
,form_for 块中的路径将是mortgage_path(mortgage, format: :qr)
。在控制器端,您将使用respond_to |format|
结构处理此问题。 - 另一个更简单的选择是定义一个非 REST 操作来呈现 QR:
MortgageController#qr_code
。您在routes.rb
文件中这样定义的操作:
resources :mortgages do get :qr_code, on: :member end
- 作为奖励曲目(未包含在您的问题中),您可以使用 rqrcode_png gem 在
/mortgage/3/qr_code
视图中生成和打印二维码。