我是新來的鐵軌,我有一個非常簡單的情況來解決,但我不知道如何處理它。Rails:簡單的'設置'模型的鍵值屬性
我想用key, value
屬性創建一個簡單的「設置」模型。 'SettingsController'可能只包含2個公共方法index
和update
。只有index
行動將有一個窗體的視圖文件,其字段將表示'設置'表的每個記錄。
我希望能夠定義一些允許的鍵(可能使用一些私有方法),我希望表單創建或更新相關字段的記錄,然後將表單提交到update
操作。
現在,我不知道我應該在控制器用什麼代碼index
和update
行動,並在其中可以同時創建/更新多條記錄都可以顯示更新的值的形式索引視圖文件時間。我如何繼續?
更新#1:
我已經成功地寫如下一些控制器操作(基於一些教程):
class Admin::SettingsController < ApplicationController
def index
@settings = Setting.all
end
def update
setting_params.each do |key, value|
Setting.where(key: key).first.update_attribute :value, value
end
redirect_to admin_settings_path, notice: "Settings saved."
end
private
def setting_params
params.require(:settings).permit(:site_title, :site_desc)
end
end
在索引視圖模板形式的代碼如下:
<h1>Settings</h1>
<%= form_tag admin_settings_path, method: "put" do %>
<p>
<label>Site Title:</label>
<%= text_field_tag "settings[site_title]" %>
</p>
<p>
<label>Site Description:</label>
<%= text_field_tag "settings[site_desc]" %>
</p>
<p>
<%= submit_tag "Save settings" %>
</p>
<% end %>
此表格將正確的值保存在數據庫中,但保存的值不會保留在表單域中。
爲什麼你不包括你已經寫的任何代碼,這樣我們就可以看到你如何思考你的問題。 – MarsAtomic
我已經設法根據教程編寫一些代碼(上面發佈的更新),但由於我的要求與我正在面臨的教程略有不同,因此需要在表單字段中保存保存的值。 –
您是否打算使用gem來獲得您想要的,還是您決定從頭創建自己的機制? – MarsAtomic