Tôi có một trang hiển thị cho Người dùng của tôi và mỗi thuộc tính chỉ nên hiển thị trên trang đó, nếu nó không phải là số không và không phải là một chuỗi rỗng. Dưới đây tôi có bộ điều khiển của tôi và nó là khá khó chịu phải viết cùng một dòng mã @user.city != nil && @user.city != ""
cho mỗi biến. Tôi không quá quen thuộc với việc tạo ra các phương pháp của riêng tôi, nhưng tôi có thể tạo ra một lối tắt để làm một cái gì đó như thế này: @city = check_attr(@user.city)
? Hoặc có cách nào tốt hơn để rút ngắn quy trình này?Kiểm tra nếu không phải là không và không trống trong lối tắt Rails?
users_controller.rb
def show
@city = @user.city != nil && @user.city != ""
@state = @user.state != nil && @user.state != ""
@bio = @user.bio != nil && @user.bio != ""
@contact = @user.contact != nil && @user.contact != ""
@twitter = @user.twitter != nil && @user.twitter != ""
@mail = @user.mail != nil && @user.mail != ""
end
Lưu ý, như của Ruby 2.3.0 bạn có thể loại bỏ nhiều kiểm tra không cần thiết bằng cách sử dụng toán tử cô đơn, một cái gì đó như 'if @user && @ user.authenticated' có thể đơn giản trở thành' if @ user & .authenticated' –