2011-12-17 2 views
1

양식을 통해 내 설정을 업데이트하려고하지만 제출할 때 업데이트 기능이 호출되지 않습니다. 제출시 서브 로그 업데이트가 호출되지 않을 때 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' 업데이트 된 기록이지만 사실은 아니므로 어디에서 확인할 지 모릅니다.

+0

당신이 라우터에 따라 경로를 설정 했을 것? – clyfe

+0

네, '리소스 : 설정'이 있습니다. 이제는 서버 로그의 설정로드 (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

+0

직접 저장해야합니다. –

답변

0

왜 form_tag 방법을 사용하고 있습니까?

그냥 표준 업데이트 양식을 만들려고 노력하는 경우는, 사용

<%= form_for(@settings) do |f| %> 
     FORM CODE 
<%= end %> 

컨트롤러는 calback에 대한보기 및 업데이트 방법을 렌더링하는 편집 방법을 사용

(모델과 상호 작용)

당신이 공동 작업하는 경우 회원과 복수에서 작업하는 경우 당신은 일반적으로 당신이 단수 단어를 사용하는 것이

<%= form_tag setting_path, :method => :put do %> 

를 사용하여 주장하는 경우 llection.

은 참고하시기 바랍니다 : 당신의 디자인이 어떤 것인지 잘 모릅니다,하지만 난 모델 설정 및 모델 settings_item ...

+0

양식이 적어도 수정되었지만 지금은 저장하지 않습니다. rails-settings gem을 사용하여 데이터를 "수직"방식으로 저장합니다. 가입 해 주셔서 감사합니다. – Gaelle

관련 문제