我尝试通过表单更新我的设置,但更新函数在我提交时未被调用。我在提交时重定向到edit_settings_path,并且根据服务器日志更新未被调用。为什么?rails form更新方法不叫
<%= 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
** **更新更新 现在被称为正确(编辑控制器)。服务器日志确认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-settings gem'git://github.com/100hz/rails-settings.git' 不知道在哪里检查,因为它说它更新记录,但事实上没有。
你在路由器中相应设置的路线? – clyfe 2011-12-18 12:02:18
是的,我有'资源:设置'。现在它根据服务器日志'设置加载(0.2ms)SELECT“设置”更新。*从“设置”WHERE“设置”。“thing_type”IS NULL和“settings”。“thing_id”IS NULL和“设置”。 var“=':default_email'LIMIT 1 (0.3ms)UPDATE”settings“SET”value“='--- 1111aaa2222 ...',”updated_at“='2011-12-18 21:03:21.782075'WHERE “设置”。“id”= 2'但它不保存到Db – Gaelle 2011-12-18 21:05:48
你必须打电话保存自己 – 2011-12-19 03:47:42