방금 rails-settings 보석을 발견했으며 이제 설정 값을 편집 할 수있는 관리자 페이지를 만들어야합니다. 이러한 동적 앱의 다양한 설정을 변경할 수있는 수정보기로 설정 컨트롤러를 만드는 방법은 무엇입니까?레일 설정 보석에 대한 설정을 구성하는 페이지는 어떻게 만듭니 까?
답변
나는이 보석을 사용하지 않았지만 꽤 솔직하게 보일 것 같습니다. 이 데이터베이스 백업 모델을 사용하기 때문에, 당신은 단순히 정상으로 컨트롤러를 만들 것입니다 : 여기에서
rails g controller Settings
을 뷰에 표시 할 모든 개별 설정을 수집하는 색인 작업을 정의 할 :
def index
@settings = Settings.all
end
을
다음보기에 당신은 설정 루프 그들을 표시 할 수 있습니다
<% @settings.each do |setting| %>
<%= setting.var %> = <%= setting.value %>
<% end %>
기본 레일에 의해 하나만 settin 제출 기대 때문에
는 지금까지 편집과 같은 ...이 까다로울 수 있습니다 g을 한 번에 편집하십시오. 이런 식으로 할 수 있지만 아약스로 편집을 구현하지 않으면 지루하고 비 직관적 일 수 있습니다.
또 다른 방법은 업데이트 방법을 설정하여 모든 개별 설정을 한꺼번에 허용하고 루프백하고 새 값으로 업데이트하는 것입니다. 그것은 다음과 같이 보일 수 있습니다
// The /settings route would need to be setup manually since it is without an id (the default)
<%= form_tag("/settings", :method => "put") do %>
<% @settings.each do |setting| %>
<%= label_tag(setting.var, setting.var) %>
<%= text_field_tag(setting.var, :value => setting.value) %>
<% end %>
<%= submit_tag("Save Changes") %>
<% end %>
이해야 모든 설정의 출력 라벨과 텍스트 필드의 값과 현재 값으로 VAR 이름으로 (그들은 변수 @settings에 할당 된 주어진). 라우팅이 설정되었다고 가정하면이 양식을 제출할 때 매개 변수를받는 작업은 params 변수의 모든 새 설정을 사용해야합니다. 이것은 가장 좋은 방법은 당신이 설정을 편집하고 얼마나 많은 설정 당신이 얼마나 자주에 따라하지 않을 수 있습니다
def update
params.each_pair do |setting, value|
eval("Settings.#{setting} = #{value}")
end
redirect_to settings_path, :notice => 'Settings updated' # Redirect to the settings index
end
...하지만이 가능한 솔루션입니다 : 그럼 당신은 행동 같은 것을 할 수 있습니다.
이런 쓰레기를 찾고있는 유일한 사람이 평가는 주요 플래그입니다. 이와 같은 일을 할 계획이라면'send'를 사용할 수 있습니다. 그런 일을하려면 Settings 모델에서 속성 설정 세부 사항을 구현해야합니다. 컨트롤러가 모델의 내부 동작을 파악하지 못하게하십시오. – unflores
나는 이것에 대한 몇 가지 제안을 찾고 있었고 이것에 대한 또 다른 답은 매우 간단하고 우아한 것으로 나중에 이것을 찾는 사람들에게 찾아 냈습니다. 모델에 동적 접근자를 설정하기 만하면 폼이 일반 속성과 마찬가지로 설정 필드를 가질 수 있습니다. 예는 원래의 대답에서 찾을 수 있습니다
- 1. 애니메이션 크레딧 페이지는 어떻게 만듭니 까?
- 2. 사용자 지정 WordPress 페이지는 어떻게 만듭니 까?
- 3. 응용 프로그램 환경 설정 페이지는 어떻게 만듭니 까?
- 4. WPF에서 기본 페이지는 어떻게 만듭니 까?
- 5. phpMyAdmin에 대한 설정 파일은 어떻게 만듭니 까?
- 6. 기본 설정 창은 어떻게 만듭니 까?
- 7. RichTextBox에 대한 찾기 양식은 어떻게 만듭니 까?
- 8. 정의중인 구조에 대한 POINTER를 어떻게 만듭니 까?
- 9. 특정 디렉토리에 대한 모니터는 어떻게 만듭니 까?
- 10. 레거시 데이터베이스에 대한 마이그레이션은 어떻게 만듭니 까?
- 11. 페이지 템플리트는 어떻게 만듭니 까?
- 12. 포인터의 배열은 어떻게 만듭니 까?
- 13. 맞춤식 날짜는 어떻게 만듭니 까?
- 14. ankhsvn에 커밋 주석 템플릿을 어떻게 만듭니 까?
- 15. Perl 클래스는 어떻게 만듭니 까?
- 16. Catalyst에서 세션을 어떻게 만듭니 까?
- 17. 게임 바닥을 어떻게 만듭니 까?
- 18. 사전 항목은 어떻게 만듭니 까?
- 19. 이벤트 구독자는 어떻게 만듭니 까?
- 20. 컨테이너 파일은 어떻게 만듭니 까?
- 21. EDM에서 데이터베이스를 어떻게 만듭니 까?
- 22. 싱글턴 IEnumerable은 어떻게 만듭니 까?
- 23. 바이너리 패치는 어떻게 만듭니 까?
- 24. 모바일 사이트는 어떻게 만듭니 까?
- 25. JSON Array는 어떻게 만듭니 까?
- 26. 빈 op_array는 어떻게 만듭니 까?
- 27. gitosis에서 머리를 어떻게 만듭니 까?
- 28. RSS 피드는 어떻게 만듭니 까?
- 29. 동적 URL은 어떻게 만듭니 까?
- 30. 소셜 그래프는 어떻게 만듭니 까?
없음이 – mhenrixon