フォームを使用して設定を更新しようとしましたが、送信時に更新機能が呼び出されません。私はサブミットすると、それはサーブごとのログ更新が呼び出されていないので、edit_settings_pathにリダイレクトします。どうして?railsフォームの更新メソッドが呼び出されない
<%= form_tag settings_path, :method => :put do %>
<p>
<%= label_tag :"settings[:default_email]", "System Administrator" %>
<%= text_field_tag :"settings[:default_email]", Settings['default_email'] %>
</p>
<span class="submit"><%= submit_tag "Save settings" %></span>
<% end %>
コントローラ
class SettingsController < ApplicationController
def update
params[:settings].each do |name, value|
Settings[name] = value
end
redirect_to edit_settings_path, :notice => "Settings have been saved." }
end
end
**更新** Updateが正しく(編集済みコントローラ)と呼ばれています。サーバーログの確認Settings Load (0.2ms) SELECT "settings".* FROM "settings" WHERE "settings"."thing_type" IS NULL AND "settings"."thing_id" IS NULL AND "settings"."var" = ':default_email' LIMIT 1 UPDATE "settings" SET "value" = '--- 1111aaa2222...', "updated_at" = '2011-12-18 21:03:21.782075' WHERE "settings"."id" = 2
しかし、それはDbに保存されず、理由もありません。私はRails設定のgem 'git://github.com/100hz/rails-settings.git'を使用しています。 更新されたレコードだが実際にはないのでチェックする場所は分かりません。
...私はあなたのデザインがどのようなものであるか知らないが、私はモデルの設定やモデルsettings_itemを持っているでしょうか? – clyfe
私は 'resource:settings'を持っています。 *サーバーログの設定負荷(0.2ms)のSELECT設定に従って更新されます。* FROM "settings" WHERE "settings"。 "thing_type"がNULLで、 "settings"。 "thing_id"がNULLで、 "settings" = ":1111aaa2222 ..."、 "updated_at" = '2011-12-18 21:03:21.782075'ここでは、 'var' = ':default_email' LIMIT 1 (0.3ms) "設定" "id" = 2 'しかし、Dbには保存されません – Gaelle
あなた自身を保存する必要があります –