[ruby-on-rails] Rails의 form_for를 사용하지만 <form> 요소에 사용자 정의 클래스, 속성을 설정 하시겠습니까?

form_for속성과 같은 ‘추가’속성을 무시 data-foo하거나 두 번째 인수에서 와 같이 class전달되는 것 같습니다 options.

= form_for @user, {:url => 'foo', :class => 'x', 'data-bar' => 'baz' } do |f|
  # ...

출력은 클래스 나 속성 <form>이없는 태그입니다 .xdata-bar

수정 사항은 무엇입니까?

또는 FormBuilder사용하지 않고 어떻게 인스턴스를 가져올 수 form_for있습니까?



답변

:html해시 사용 :

= form_for @user, :html => {:class => 'x', 'data-bar' => 'baz'} do |f|

또는

= form_for @user, html: {class: 'x', data: { bar: 'baz' } } do |f|


답변

Rails 4.0.3, Ruby 2.1.0p0-> 이것은 나를 위해 일했습니다 =>

<%= form_for(@contact, :html => {:class => 'form_height'}) do |f| %><% if     @contact.errors.any? %>


답변

나는 같은 문제가 있었지만 내 앱의 다른 양식이 제대로 작동하고 있다는 사실에 의아해했습니다.

내가 실수로 추가 한 것을 깨달았다 form_for 다른 내부 form_for 번 문제를 치료 제거.

둘째,이 구문이 Rails 4.2에서 작동한다고 추가해야합니다.

<%= form_for @type, html: {class: "form-horizontal"} do |f| %>

여기에 다른 답변의 구두점 수프 (아마도 이전 Rails 버전을 기반으로 함)보다 선호됩니다.


답변

대부분 헬퍼에서 마지막 인수는 요소에 대한 html 옵션의 해시입니다.

= form_for @user, :html => {:class => 'x', 'data-bar' => 'baz'} %>

ActionsView :: Helpers :: FormHelper 문서에서 다른 대안을 확인할 수도 있습니다.


답변

나는 운없이 위의 방법을 시도했지만 해결책을 찾았습니다. 레일 4.1.6을 사용하고 있습니다.

이것은 작동하지 않았다

= form_for @user, :html => {:class => 'x', 'data-bar' => 'baz'} %>

이것은

= form_for @user, html: {:class => 'x', 'data-bar' => 'baz'} %>

html 옵션과의 차이점을 확인하십시오.


답변