난 레일에서 이런 걸하고 싶어
여기 내가 지금까지 레일에 가지고있는 것입니다 :
<%= form_for @order do |f| %>
<%= f.hidden_field :service, "test" %>
<%= f.submit %>
<% end %>
그러나이 오류가 발생합니다.
undefined method `merge' for "test":String
hidden_field의 값을 레일로 전달하려면 어떻게해야합니까?
답변
해야 할 일 :
<%= f.hidden_field :service, :value => "test" %>
hidden_field
해시를 두 번째 인수로 예상
답변
hidden_field_tag 대신 hidden_field를 사용하고 있습니다. 비 _tag 버전을 사용하고 있으므로 컨트롤러가 양식을 지원하는 객체에서 해당 속성의 값을 이미 설정 한 것으로 가정합니다. 예를 들면 다음과 같습니다.
제어 장치:
def new
...
@order.service = "test"
...
end</pre>
전망:
<%= form_for @order do |f| %>
<%= f.hidden_field :service %>
<%= f.submit %>
<% end %>
답변
Ruby 1.9 및 rails 4에서 잘 작동합니다.
<%= f.hidden_field :service, value: "test" %>
답변
루비 1.9의 새로운 해시 구문이있는 버전 :
<%= f.hidden_field :service, value: "test" %>
답변
이것은 Rails 3.2.12에서도 작동합니다.
<%= f.hidden_field :service, :value => "test" %>
답변
그건 그렇고, 숨겨진 필드를 사용하여 서버에서 브라우저로 데이터를 보내지 않습니다. 데이터 속성 은 훌륭합니다. 넌 할 수있어
<%= form_for @order, 'data-service' => 'test' do |f| %>
그런 다음 jquery로 속성 값을 가져옵니다.
$('form').data('service')