Làm cách nào để sử dụng hidden_field trong form_for trong Ruby on Rails?


83

Tôi đã đọc , nhưng tôi là người mới sử dụng RoR nên tôi gặp một chút khó khăn khi hiểu nó. Tôi đang sử dụng biểu mẫu để tạo bản ghi yêu cầu mới và tất cả các biến mà tôi cần gửi đã tồn tại. Đây là dữ liệu tôi cần gửi (đây là trong vòng lặp do):

:user_id => w[:requesteeID]
:requesteeName => current_user.name
:requesteeEmail => current_user.email
:info => e

Đây là biểu mẫu của tôi, hoạt động cho đến nay, nhưng chỉ gửi giá trị NULL cho mọi thứ:

<% form_for(:request, :url => requests_path) do |f| %>
    <div class="actions">
        <%= f.submit e %>
    </div>
<% end %>

Làm cách nào để sử dụng hidden_fields để gửi dữ liệu mà tôi đã có? Cảm ơn vì đã đọc.


Vừa thử <% = f.hiised_field: user_id,: value => w [: calleeID]%> nhưng nó chỉ gửi NULL
ben

Câu trả lời:


104

Ref hidden_field hoặc hidden_field_tag

<% form_for(:request, :url => requests_path) do |f| %>
    <div class="actions">
        <%= f.hidden_field :some_column %>
        <%= hidden_field_tag 'selected', 'none'  %>
        <%= f.submit e %>
    </div>
<% end %>

sau đó trong bộ điều khiển

 params[:selected]="none"
 params[:request][:some_column] = request.some_column

Lưu ý khi bạn sử dụng

   <%= f.hidden_field :some_column %>

nó thay đổi thành html

<input type="hidden" id="request_some_column" name="request[some_column]" value="#{@request.some_column}" />

và khi bạn sử dụng

<%= hidden_field_tag 'selected', 'none'  %>

nó thay đổi thành html

   <input id="selected" name="selected" type="hidden" value="none"/>

76

Bạn có thể gửi một giá trị tùy chỉnh dưới dạng đầu vào ẩn cho mô hình của mình như vậy:

<%= f.hidden_field :your_model_field_name, value: 12 %>

Đâu value: 12chỉ là một bản demo, nhưng bạn có thể vượt qua bất kỳ giá trị nào bạn cần.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.