2009-08-05 30 views
16

Về cơ bản đây là một câu hỏi dạng lồng nhau, mặc dù chỉ có một trường thuộc về một mô hình gốc. Biểu mẫu nhập dữ liệu của tôi thu thập dữ liệu cho một mô hình - tuy nhiên tôi cũng cần thu thập một phần tử/giá trị dữ liệu khác (UserID) thực sự đi vào một bản ghi cha sẽ được tạo với bản ghi chi tiết.Rails - Đầu vào người dùng cho nhiều mô hình trên một mẫu đơn - Cách

AFAIK Rails dự kiến ​​mỗi trường biểu mẫu sẽ ánh xạ tới một mô hình và tôi cần tạo trường nhập dữ liệu không gắn kết mà tôi sẽ sử dụng riêng.

Làm cách nào để ghi đè hành vi mặc định này và tạo 'trường biểu mẫu/không liên kết' miễn phí?

TIA, BC

Trả lời

2

Đối với "ma thuật" hình thức < => mô hình lập bản đồ form_for được sử dụng. (http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html)

Nếu bạn cần một cái gì đó ra khỏi mô hình hiện tại hãy thử sử dụng http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html

Với nó, bạn có thể thêm các thẻ riêng biệt từ các mô hình, ví dụ như

radio_button_tag 

bên trong khối form_for

43

Heres một cái gì đó từ ứng dụng của riêng tôi:

Truy cập bằng cách:

params[:company] and params[:user] 

Bộ điều khiển:

@company = Company.new 
@user = User.new 

Xem:

<% form_for @company, :url => companies_path do |f| %> 
    <%= f.error_messages %> 
    <p> 
    <%= f.label :name %><br /> 
    <%= f.text_field :name %> 
    </p> 
    <p> 
    <%= f.label :website %><br /> 
    <%= f.text_field :website %> 
    </p> 
<hr /> 
    <% fields_for @user do |u| %> 
    <p> 
     <%= u.label :email %><br /> 
    <%= u.text_field :email %> 
    </p> 
    <p> 
     <%= u.label :username %><br /> 
    <%= u.text_field :username %> 
    </p> 
    <p> 
     <%= u.label :password %><br /> 
    <%= u.password_field :password %> 
    </p> 
    <p> 
    <%= u.label :password_confirmation %><br /> 
    <%= u.password_field :password_confirmation %> 
    </p> 
    <% end %> 
    <p> 
     <%= f.submit "Submit" %> 
    </p> 
<% end %> 
Các vấn đề liên quan