2011-12-11 26 views
7

Đối với hình thức của tôi, tôi đang sử dụng mô hình Product tôi:Làm cách nào để truyền một đối tượng trong thẻ nút radio?

class Product < ActiveRecord::Base 
    attr_accessible :purchase_date, :send_to_data 
end 

Trên mẫu của tôi, tôi có :purchase_date làm việc một cách chính xác khi tôi tạo ra nhiều sản phẩm mà còn muốn làm cho radio_button_tag làm tương tự:

<%= form_tag create_multiple_products_path, :method => :post do %> 

    <%= date_select("product", "purchase_date") %> 

    <%= radio_button_tag(:send_to_data, 1) %> 
    <%= radio_button_tag(:send_to_data, 0) %> 


    <% @products.each_with_index do |product, index| %> 
    <%= fields_for "products[#{index}]", product do |up| %> 
     <%= render "fields", :f => up %> 
    <% end %> 
    <% end %> 

    <%= submit_tag "Done" %> 
<% end %> 

Điều này không hiệu quả đối với tôi, cơ sở dữ liệu của tôi không gắn cờ là sai hoặc đúng.

Tôi nghĩ rằng sự cố nằm trong các thông số của "send_to_data". Không giống như "purchase_date", không tìm thấy đối tượng (sản phẩm).

{"product"=>{"purchase_date(2i)"=>"12", "purchase_date(3i)"=>"11", "purchase_date(1i)"=>"2011"}, 
"send_to_data"=>"1", 
"products"=>{"0"=>{"product_name"=>"Test", "price"=>"23", "product_store"=>"13", "exact_url"=>""}, 
"1"=>{"product_name"=>"", "price"=>"", "product_store"=>"", "exact_url"=>""}, 
"2"=>{"product_name"=>"", "price"=>"", "product_store"=>"", "exact_url"=>""}, 
"3"=>{"product_name"=>"", "price"=>"", "product_store"=>"", "exact_url"=>""}, 
"4"=>{"product_name"=>"", "price"=>"", "product_store"=>"", "exact_url"=>""}}, "commit"=>"Done"} 

Có cách nào để ánh xạ tới đối tượng như ngày mua không?

Trả lời

8

Theo như tôi có thể nhìn thấy bạn nhầm lẫn FormHelperFormTagHelper. Bạn sử dụng Mẫu thẻ helper đó, theo các tài liệu

(FormTagHelper) cung cấp một số phương pháp để tạo thẻ hình thức mà không dựa trên một Ghi đối tượng Active gán cho template như FormHelper làm.

Điều này có nghĩa là đối với biểu mẫu dựa trên ActiveRecord bạn cần sử dụng FormHelper (và phương pháp trợ giúp radio_button).

Mã với radio_button_tag mẫu thẻ helper

<%= radio_button_tag(:send_to_data, 1) %> 
<%= radio_button_tag(:send_to_data, 0) %> 

tạo ra mã HTML sau đây:

<input id="send_to_data_1" name="send_to_data" type="radio" value="1" /> 
<input id="send_to_data_0" name="send_to_data" type="radio" value="0" /> 

Và mã với radio_button hình thức helper

<%= radio_button("product", :send_to_data, 1) %> 
<%= radio_button("product", :send_to_data, 0) %> 

tạo:

<input id="product_send_to_data_1" name="product[send_to_data]" type="radio" value="1" /> 
<input id="product_send_to_data_0" name="product[send_to_data]" type="radio" value="0" /> 

Hy vọng điều này sẽ hữu ích!

3

kiểm tra trang này form_helpers đầu tiên, ở đây, đúng cách nên

<%= radio_button_tag(:send_to_data, 1) %> 
<%= radio_button_tag(:send_to_data, 0) %> 
+0

Điều này thật lạ. Tôi đã thử điều này và vẫn nhận được kết quả tương tự. Tôi có nó có thể truy cập trong mô hình của tôi và tôi biết bảng sản phẩm của tôi có/phát hiện nó vì dữ liệu hạt giống của tôi hiển thị cột cùng với Sản phẩm được gắn cờ là đúng/sai nhưng khi tạo chúng dường như không làm được. – LearningRoR

Các vấn đề liên quan