2014-07-11 2 views
2

레일보기 페이지에 텍스트 필드 태그가 있습니다. 지금은이 같은 기록 ..레일 내부의 상태 점검 text_field 태그

<% if params[:action]== "edit" %> 
    <%= f.text_field :id, class: 'form-control', disabled: true %> 
<% else %> 
    <%= f.text_field :id, class: 'form-control', disabled: false %> 
<% end %> 

내가 .. 한 줄에 나는이 잘 아니라는 것을 알고

<%= f.text_field :id, class: 'form-control', disabled: (if params[:action]=="edit")?true:false %> 

같은 것을이를 작성할 수 있습니다. 제발 고쳐주세요.

답변

5

이 시도 :

<%= f.text_field :id, class: 'form-control', disabled: (params[:action] == 'edit') %> 

params[:action] == 'edit' 이미 true 또는 false 반환합니다.

+0

+1, 클리너 솔루션 – dax

+0

고맙습니다 .................. –

+0

@NidhinSG 도와 줘서 다행입니다! – backpackerhh

2

끝났습니다. 대신 다음을 시도하십시오 :

<%= f.text_field :id, class: 'form-control', disabled: (params[:action] == "edit" ? true : false) %> 

괄호/괄호는 전체 조건부 문장을 묶어야합니다. 그렇게하면 명령문이 평가되고 true 또는 false 만 반환됩니다.

backpackernh의 솔루션은 더 나은 - 그것은 모두 함께 삼항 문 없애는 :

<%= f.text_field :id, class: 'form-control', disabled: (params[:action] == "edit") %> 
+0

왜'disabled가 아닌가? (params [: action] == "edit")'without ternary? –

+0

@ backpackerhh는이 방법을 언급했는데, 이는 더 좋습니다. – dax