我試圖在表單中擁有一組動態的輸入,它以一個開始,您可以使用添加/刪除按鈕添加或刪除它們。然後,在提交表單後,它將輸入的值變成散列,然後將散列成字符串進行存儲。我真的不知道從哪裏開始。所以任何提示都會有幫助。Ruby - 數組輸入集
如果使用javascript將有所幫助,我可以去那條路線,但我不知道如何使JavaScript和紅寶石談話。
我試圖在表單中擁有一組動態的輸入,它以一個開始,您可以使用添加/刪除按鈕添加或刪除它們。然後,在提交表單後,它將輸入的值變成散列,然後將散列成字符串進行存儲。我真的不知道從哪裏開始。所以任何提示都會有幫助。Ruby - 數組輸入集
如果使用javascript將有所幫助,我可以去那條路線,但我不知道如何使JavaScript和紅寶石談話。
根據您的使用情況,您可能需要使用幾個選項。既然你已經用rails
標記了這個,我假設你有權訪問JQuery。這裏是你怎麼可能去加入到頁字段動態使用它一個(很簡單),例如:
https://jsfiddle.net/3Lyvw0jm/
如果你打算存儲你的機型之一這些領域,你可能要採取請看執行nested attributes。
作爲一種常見的網絡事物(不是Rails特有的),您可以使name
的值看起來像some_name[]
。
因此,而不是具有不同的名字,如這種多輸入:
<input type='text' id='my_input_1' name='my_input_1' value='string_1' />
<input type='text' id='my_input_2' name='my_input_2' value='string_2' />
<input type='text' id='my_input_3' name='my_input_3' value='string_3' />
...的服務器上的你:
你必須:
<input type='text' id='my_input_1' name='my_inputs[]' value='string_1' />
<input type='text' id='my_input_2' name='my_inputs[]' value='string_2' />
<input type='text' id='my_input_3' name='my_inputs[]' value='string_3' />
...你在服務器上得到:
params :my_inputs # ['string_1','string_2',string_3']
你需要將哪種模型字段保存到數據庫中? – thedanotto
這可能有多種應用程序,所以它將取決於應用程序。例如,輸入可以與[jQueryUI自動完成](https://jqueryui.com/autocomplete/)一起使用來添加標籤。輸入將包含標籤的'name'。然後,假設你的對象有'has_many:tags'關係,在'create'和'update'操作中你可以做一些類似'object_params(:my_inputs).each {| name | @ object.tags << Tag.find_by name:name} if object_params(:my_inputs).present?'。 –
您可能想要研究嵌套屬性;瑞恩貝茨在這方面做了一個[railscast](https://www.youtube.com/watch?v=-WJUaCI-SWg)。你也可能對[cocoon gem](https://github.com/nathanvda/cocoon)感興趣。 – kjmagic13