양식을 통해 내 설정을 업데이트하려고하지만 제출할 때 업데이트 기능이 호출되지 않습니다. 제출시 서브 로그 업데이트가 호출되지 않을 때 edit_settings_path로 리디렉션됩니다. 왜?레일 폼 업데이트 메서드가 호출되지 않았습니다.
<%= 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 설정 gem을 사용하고 있습니다. 'git : //github.com/100hz/rails-settings.git' 업데이트 된 기록이지만 사실은 아니므로 어디에서 확인할 지 모릅니다.
당신이 라우터에 따라 경로를 설정 했을 것? – clyfe
네, '리소스 : 설정'이 있습니다. 이제는 서버 로그의 설정로드 (0.2ms) SELECT "설정"에 따라 업데이트됩니다. * "설정"에서 "설정". "thing_type"은 NULL이고 "설정"입니다. "thing_id"는 NULL이고 "설정"입니다. = ": 1111aaa2222 ...", "updated_at"= '2011-12-18 21 : 03 : 21.782075'WHERE 'var'= ': default_email'제한 1 (0.3ms) "설정"SET "값"= ' "설정". "id"= 2 '하지만 Db에 저장하지 않습니다. – Gaelle
직접 저장해야합니다. –