2014-09-27 16 views
7


Bắt đầu tìm hiểu Ruby on Rails.
Làm cách nào để thêm vào biểu mẫu một trường ảo?
Sau khi gửi biểu mẫu, các trường này phải được kết hợp và lưu trữ trong một trường cơ sở dữ liệu duy nhất.Cách thêm biểu mẫu vào một trường ảo

Trả lời

5

Đầu tiên thiết lập hình thức như bình thường:

<%= form_for @user do |f| %> 
<ol> 
    <li> 
    <%= f.label :first_name, 'First Name' %> 
    <%= f.text_field :first_name %> 
    </li> 
    <li> 
    <%= f.label :last_name, 'Last Name' %> 
    <%= f.text_field :last_name %> 
    </li> 
    <%= f.submit %> 
</ol> 
<% end %> 

Trong ví dụ này chúng tôi có thêm một thuộc tính ảo cho first_namelast_name.

user.rb

class User < ActiveRecord::Base 
    attr_accessor :first_name 
    attr_accessor :last_name 
end 

Thêm một attr_accessor cho thuộc tính ảo mới của bạn.

users_controller.rb

def create 
    @user = User.new(:full_name => {'firstname' => user_params[:first_name], 'lastname' => user_params[:last_name]}) 
    ... 
end 

private 

def user_params 
    params.require(:user).permit(:first_name, :last_name) 
end 

Cuối cùng, thêm một phương pháp cho phép params thuộc tính ảo (giả sử Rails 4).

Để lưu nhiều đầu vào và lưu chúng vào một trường đơn trong DB, bạn có thể kết hợp các trường ảo trong bộ điều khiển và sau đó lưu chúng vào DB, như được hiển thị trong phương pháp create ở trên.

+1

Ok, rất nhiều, Tom. Cảm ơn bạn! –

+1

Không vấn đề gì, xin vui lòng upvote nếu điều này đã giúp :) –

+1

Tất nhiên, Tom. –

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