- vừa được xem lúc

Phân biệt method New, Build, Save và Create trong Rails

0 0 26

Người đăng: Khoa Tran Huy

Theo Viblo Asia

Viết blog để thay đổi không khí, cũng như là một cách để lưu giữ kiến thức lâu hơn.
Nội dung bài viết bắt nguồn từ chính những thắc mắc của bản thân trong quá trình học nên chắc sẽ phù hợp hơn với những ai cũng đang mới học Rails như mình.
Có gì sai sót mọi người cùng góp ý và chia sẻ nha ^^

New, Build, Create


Đặc điểm chung :

Đều dùng để tạo mới object trong Rails.


Create method

Truyền data vào và Save luôn

VD:
def new @book = Book.create(title: "RoR 5 超入門", author:"掌田津耶乃") #title là RoR 5 超入門,author là 掌田津耶乃
end

New method, Build method

New method truyền data vào nhưng không save. Muốn tạo object thì cần kết hợp với cả save method nữa.

New và Build hoạt động gần giống nhau nhưng Build ít khi được dùng hơn.
Build gần như chỉ được dùng trong các trường hợp đặc biệt, ngoài ra hầu hết New được sử dụng

def new @book = Book.new
end

Hoặc

def new @book = Book.new(title: "羅生門", author:"芥川龍之介") #title là RoR 5 超入門,author là 掌田津耶乃
end

Kết hợp với save method để lưu data

def new @book = Book.new
end

Tại sao lại phải chia ra nhiều cách dùng như vậy ?

Tại sao lại phải dùng New trong khi có thể dùng Create ?

Khi ta tạo ra một biến instance và muốn thao tác với nó trong quá trình save thì phải dùng New, chứ không dùng Create được.
Vì nếu dùng Create thì nó sẽ save luôn mà không kịp thao tác gì cả,

VD: Dùng hàm if

def create @user = User.new(user_params) #Tạo biến instance if @user.save redirect_to @user, notice: 'User created' else render :new #Nếu Save thất bại thì render :new end
end

==> Tạo biến instance, nếu save thành công thì redirect_to @user, nếu save thất bại thì render :new


Tổng kết

Một bức ảnh thay cho tóm tắt bài viết. 🤗

image.png

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tôi cá là bạn không biết những điều này - Ruby on rails ( Phần 2)

Các bạn có thể theo dõi phần 1 ở đây :. https://viblo.asia/p/toi-ca-la-ban-khong-biet-nhung-dieu-nay-ruby-on-rails-phan-1-WAyK8DDeKxX. 5.

0 0 211

- vừa được xem lúc

Rails Memoization

Memoization is a process that can be used to speed up rails methods. It caches the results of methods that do time-consuming work, work that only needs to be done once. Here is an example. Example.

0 0 34

- vừa được xem lúc

Tại sao Rails lại dùng cả Webpack lẫn Sprocket?

Khi Rails 6 được ra mắt, có thể bạn đã từng tự hỏi. WTF, sao Webpack đã được add vào rồi, mà Sprocket vẫn tồn tại thế kia . Chẳng phải Webpack và Sprocket được dùng để giải quyết chung một công việc hay sao. Hoặc cả đây:.

0 0 47

- vừa được xem lúc

Bạn nên sử dụng Elasticsearch trong ứng dụng Ruby On Rails như thế nào?

Elasticsearch là một công cụ phân tích và mã nguồn mở mạnh mẽ và linh hoạt, phân tán, theo thời gian thực. Đó là tiêu chuẩn vàng trong công nghệ tìm kiếm.

0 0 70

- vừa được xem lúc

Form object pattern trong rails

1.Mở đầu.

0 0 100

- vừa được xem lúc

Sử dụng Twilio để gửi SMS trong ứng dụng Ruby on Rails

Ngoài cách xác nhận tài khoản hay gửi thông báo bằng email thì hôm nay mình sẽ hướng dẫn các bạn 1 cách nữa là thông qua SMS/Voice. Công cụ sử dụng sẽ là gem Twilio. Installation. Để cài đặt bằng Bundler, hãy lấy phiên bản mới nhất:.

0 0 56