我正在構建一個包含html表的頁面,用戶可以在表中選擇名稱和表格行中的內容。Rails - 如何將表單保存爲多個輸入的數據作爲散列
用戶將信息輸入到表單中,該表單將被解析爲散列並保存到數據庫中。
下面是一個示例,其中:key
將是散列(表頭文本)的關鍵字,:value
將是散列值(表列內容)中的值。
<%= form_for([@page]) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= f.text_field :key1 %>
<%= f.text_field :value1 %>
<%= f.text_field :key2 %>
<%= f.text_field :value2 %>
<%= f.text_field :key3 %>
<%= f.text_field :value3 %>
<%= f.text_field :key4 %>
<%= f.text_field :value4 %>
<%= f.submit "Save" %>
<% end %>
我可以做一個has_many
聯想到page
DB一個新的數據庫表,並有存儲在該表中的信息。然後,當我需要渲染視圖時,可以將該數據重建爲散列。
但是,如果我可以將整個散列保存到page
數據庫的列中,那麼每次有人訪問該頁面時都不必重建散列。
我正在努力想出如何在form_for
中做到這一點。
第一個問題是它在page
表中需要key
和value
列。一個簡單的解決方法是將所有輸入更改爲<%= f.text_field :html_table %>
(page
表中的html_table
列)。但是,它將無法區分哈希中的鍵和值。而且我也沒有辦法告訴它將這些信息放在一起,然後存儲到page
表的html_table
列中。
不知道這是否甚至是可能的事情,但在繼續構建has_many
關聯表並設置它之前先詢問並不會有什麼不好。
其可行的,但形式是什麼樣子? 'text_field:key1'沒有'f.'? – Rob
@ user3234020是的,你應該使用不同的幫手。檢查編輯 – Harfangk
好的,我明天會放棄它。 – Rob