簡體   English   中英

【Rails】如何將hash轉成一個數組,每個都在erb中

[英]【Rails】How to turn a hash in an array with each in erb

想要達到

ruby 2.6.5
導軌 6.0.3

感謝您的關注。
我正在 Rails 中創建一個 web 應用程序。
我想知道您是否可以告訴我如何將多個表連接在一起,然后對每個表中的每個元素重復一次。

細節

從下表中,我們要獲取與用戶相關的任務以及與任務相關的信息(解決方案和擁有解決方案的公司名稱),並將它們放在數組中的 hash 中。

我想 output 我們以這種方式創建的數組,一次一個,使用 erb 中的每個。

(我不知道如何在 EACH 中打開任務,但仍然 output 是公司名稱和與 EACH 中的任務相關的其他信息。)

像這樣

A suitable solution for mike task "task1
・ Company name:Dcompany Solution:「solution2」
・ Company name:Ccompany Solution:「solution3」

A suitable solution for mike task "task1
・ Company name:Acompany Solution:「solution1」

用戶表

|id|name|
| 1|mike|
| 2|bob |

任務表

|id|task_name|user_id|
| 1|task1    |      1|
| 2|task2    |      1|
| 3|task3    |      2|

推薦表

|id|task_id|solution_id|
| 1|      1|          2|
| 2|      1|          3|
| 3|      2|          1|

解決方案表

|id|solution_name|company_id|
| 1|    solution1|         1|
| 2|    solution2|         4|
| 3|    solution3|         3|

公司表

|id|name    |
| 1|Acompany|
| 2|Bcompany|
| 3|Ccompany|
| 4|Dcompany|

試過了

首先,我能夠加入如下所示的表格,將我想要的數據作為一個表格。
但是,我不知道如何從這里提取數據以及如何將其轉過來,所以我放棄了。

tasks = user.eager_load(:tasks)
tasks = tasks.eager_load(:recommends)
tasks = tasks.eager_load(recommends: :solutions)
tasks = tasks.eager_load(recommends: {solutions: :companies })

這大約是我能夠獲得理想值的方式。

infos = []

users.each do |user|
  info = {}
  temporary_array = []
  user.companies.each do |company|
  end
  info[:detail] = temporary_array
  infos << info
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM