2013-03-16 2 views
0

필드와 모델이 연결되지 않은 필드를 만들 수있는 방법이 궁금합니다. 필드가 필요한 유일한 이유는 해당 작업을 수행 할 작업을 결정하는 것입니다.모델과 연관되지 않은 루비로 필드를 만듭니다.

내가 모델 기사를 가지고 있고, 새 기사를 만들 때, 0,1,2를 가질 수있는 숨겨진 필드를 원합니다. 그리고 새로운 컨트롤러에서 params가 0, 그런 다음이 로직 세트 또는이 로직 세트를 수행하십시오.

감사합니다. 각 작업에 대한 일련의 동작 정의는 작동하지 않습니다.

답변

2

양식에서 모델과 직접 관련되지 않은 숨김 필드와 표시 필드를 모두 선언 할 수 있습니다. 양식을 제출할 때 양식의 작업에서 모델과 관련이없는 params의 특성을 조작 할 수 있습니다.

당신은 당신이 email_field_tag 같은 _tag, radio_button_tag로 끝나는 것들, 그리고 귀하의 질문에, hidden_field_tag에 관한 사용할 수 있습니다 양식 필드를 선언합니다. 예 :

<% hidden_field_tag 'this_is_hidden' %> 

그것을 밖으로 시도하고 행동으로 오는 것을 검사 : raise params.inspect. 이렇게하면 params에 모델과 관련이없는 선언 된 속성 (예 : :this_is_hidden 속성)의 키가 포함되어 있음을 알 수 있습니다.

0

가장 쉬운 방법은 @Zippie와 같이 숨겨진 필드를 가지는 것입니다. 그러나 최종 사용자가 숨겨진 필드의 값을 수정할 수 있고 프로그램이 다르게 작동 할 수 있으므로 몇 가지 위험이 있습니다. 내가 개인적으로 생각 무엇

워크 플로를 수정할 수있는 기회가되지 않습니다 그런 식으로 최종 사용에 의해 통과 매개 변수

Ex: if it is a new object then it should go to method A etc... 

에서 식별하는 방법의 일종입니다.

관련 문제