Đấy là giải thích việc data class gen ra những hàm đó cho bạn, mình không nói là bạn phải viết 2 hàm đấy ra ở Java. Viết ra chỉ là để người đọc biết rằng data class có mặc định 2 hàm đấy
Con lai của chuyện tình tay 3 , Framework giống AngularJs, View Engine giống React, Time Travel (Vuex) giống Redux. 3 thứ siêu đỉnh kết hợp lại thành VueJs.
Đọc code thấy cũng rất sạch sẽ gòn gàng, rất đáng để sử dụng. Cá nhân mình nghĩ nó sẽ phát triển mạnh.
ví dụ đầu tiên, đã return super thì cần gì phải override, hay cụ thể hơn là trừ cái toString ra còn lại mấy hàm có override đều là thừa, ko viết cũng ko sao, còn nếu thực sự cần override theo ý mình cho khác với base class thì bất kể ngôn ngữ nào khi thay đổi cũng cần sửa chứ ko riêng gì java, kể cả kotlin cũng ko ngoại lệ
anh ơi, có trang nào tiếng việt giúp tạo 1 web rõ ràng bằng rails không a, vì tiếng anh e còn hạn chế nên việc đọc RUBY ON RAILS TUTORIAL (RAILS 5)
Learn Web Development with Rails
Michael Hartl
thực hành đọc khó hiểu
Tại sao cái hàm show em viết cuối cùng thì nó không gét được cái @user vậy anh phải chẳng ruby nó vậy. giờ em xem code anh thì em chuyển hàm show lên trên đầu users_controller.rb thì nó chạy bình thường.
Bài hướng dẫn trên pần view :session request qua mà anh ghi thiếu chữ i :sesson, phần view lúc create sẽ redirect_to login_path mà a không cập nhập lại view -_- newbie như em thiệt vật lộn mất buổi tối mà T_T
error ndefined methodname' for nil:NilClass`
cái này là do thằng @user đang nil,
e check lại xem lúc call hàm Session#create có get được thằng User ra không
https://github.com/duc11t3bk/login_app
đây là project ở trên, e down về nghiên cứu nhé
<label>User name: <%= @user.name %>
error ndefined method `name' for nil:NilClass
Anh cho em hỏi là tại sao em có viết cai function show trong users_controller.rb mà dường như nó không get được cái @user.name
Nguyên nhân của việc dùng get 'logout' => 'session#destroy' chạy được mà detele 'logout' => 'session#destroy'
app/views/users/show.html.erb
<%= link_to "Logout", logout_path, method: :delete %>
là do ở phía trên a thiếu cái method: :delete phía sau thằng link_to, chú xem ở bên trên cái này đúng là a bị thiếu đấy (yaoming)
A giải thích thêm:
Vì sao trước khi thêm method: :delete chú dùng get thì chạy được là do
khi khai báo get 'logout' => 'session#destroy' thì lúc gọi logout_path thì url nó sẽ sinh ra thế này /logout với method là GET, mặc định link_to khi gọi sẽ là method GET nhé. Vì thế chú đổi lại ở routes thành GET nó mới chạy được
khi khai báo detele 'logout' => 'session#destroy' thì lúc gọi logout_path thì url nó sẽ sinh ra thế này /logout nhưng method lại là DELETE, do đó khi muốn thằng link_to đổi method thành DELETE khi gọi cần thêm method: :delete phía sau
Để ý cả 2 thằng get 'logout' => 'session#destroy' và detele 'logout' => 'session#destroy' đều sinh ra url là /logout chỉ khác method lúc truyền lên Server là GET hay DELETE mà thôi, việc quy định như vậy là chuẩn đã được thống nhất người ta gọi là chuẩn RESTFUL có thê tham khảo thêm bên dưới để hiểu rõ hơn nhé
https://viblo.asia/khanhhd/posts/l5y8Rro9Mob3
THẢO LUẬN
Các package mình đang sử dụng nhé:
Đấy là giải thích việc data class gen ra những hàm đó cho bạn, mình không nói là bạn phải viết 2 hàm đấy ra ở Java. Viết ra chỉ là để người đọc biết rằng data class có mặc định 2 hàm đấy
Con lai của chuyện tình tay 3 , Framework giống AngularJs, View Engine giống React, Time Travel (Vuex) giống Redux. 3 thứ siêu đỉnh kết hợp lại thành VueJs. Đọc code thấy cũng rất sạch sẽ gòn gàng, rất đáng để sử dụng. Cá nhân mình nghĩ nó sẽ phát triển mạnh.
Bạn tham khảo ở đây nhé https://www.cocoanetics.com/2012/07/multi-context-coredata/
ví dụ đầu tiên, đã return super thì cần gì phải override, hay cụ thể hơn là trừ cái toString ra còn lại mấy hàm có override đều là thừa, ko viết cũng ko sao, còn nếu thực sự cần override theo ý mình cho khác với base class thì bất kể ngôn ngữ nào khi thay đổi cũng cần sửa chứ ko riêng gì java, kể cả kotlin cũng ko ngoại lệ
anh ơi, có trang nào tiếng việt giúp tạo 1 web rõ ràng bằng rails không a, vì tiếng anh e còn hạn chế nên việc đọc RUBY ON RAILS TUTORIAL (RAILS 5) Learn Web Development with Rails Michael Hartl thực hành đọc khó hiểu
Nếu là quản trị website thì ko cần biết code bạn nhé, chủ yếu là nhập liệu chỉnh sửa nội dung trên site.
haha, e cũng làm theo chứ không hiểu rõ bên trong lắm
(y)
https://github.com/duc11t3bk/login_app/blob/master/app/controllers/users_controller.rb#L7 chú phải đặt nó phía trên hàm khai báo private nhé, cụ thể là phải nằm phía trên hàm này, đặt phía dưới là nó sẽ hiểu là hàm private đấy, mà private thì không get được thằng @user ra đâu
thế hả =]] a copy code từ project sang mà nhỉ, thế ếu nào nó chạy ầm ầm nên không check lại source trên bài vất vả chú rồi =]]
Tại sao cái hàm show em viết cuối cùng thì nó không gét được cái @user vậy anh phải chẳng ruby nó vậy. giờ em xem code anh thì em chuyển hàm show lên trên đầu users_controller.rb thì nó chạy bình thường.
Bài hướng dẫn trên pần view :session request qua mà anh ghi thiếu chữ i :sesson, phần view lúc create sẽ redirect_to login_path mà a không cập nhập lại view -_- newbie như em thiệt vật lộn mất buổi tối mà T_T
error ndefined method
name' for nil:NilClass` cái này là do thằng @user đang nil, e check lại xem lúc call hàm Session#create có get được thằng User ra không https://github.com/duc11t3bk/login_app đây là project ở trên, e down về nghiên cứu nhé<label>User name: <%= @user.name %> error ndefined method `name' for nil:NilClass Anh cho em hỏi là tại sao em có viết cai function show trong users_controller.rb mà dường như nó không get được cái @user.name
Nguyên nhân của việc dùng
get 'logout' => 'session#destroy'
chạy được màdetele 'logout' => 'session#destroy'
app/views/users/show.html.erb<%= link_to "Logout", logout_path, method: :delete %>
là do ở phía trên a thiếu cáimethod: :delete
phía sau thằng link_to, chú xem ở bên trên cái này đúng là a bị thiếu đấy (yaoming)A giải thích thêm: Vì sao trước khi thêm method: :delete chú dùng get thì chạy được là do khi khai báo
get 'logout' => 'session#destroy'
thì lúc gọi logout_path thì url nó sẽ sinh ra thế này/logout
với method làGET
, mặc định link_to khi gọi sẽ là method GET nhé. Vì thế chú đổi lại ở routes thành GET nó mới chạy đượckhi khai báo
detele 'logout' => 'session#destroy'
thì lúc gọi logout_path thì url nó sẽ sinh ra thế này/logout
nhưng method lại làDELETE
, do đó khi muốn thằng link_to đổi method thànhDELETE
khi gọi cần thêmmethod: :delete
phía sau Để ý cả 2 thằngget 'logout' => 'session#destroy'
vàdetele 'logout' => 'session#destroy'
đều sinh ra url là/logout
chỉ khác method lúc truyền lên Server là GET hay DELETE mà thôi, việc quy định như vậy là chuẩn đã được thống nhất người ta gọi là chuẩn RESTFUL có thê tham khảo thêm bên dưới để hiểu rõ hơn nhé https://viblo.asia/khanhhd/posts/l5y8Rro9Mob3@jinvauser Mình vẫn chưa hiểu ý của bạn, bạn có thể trình bày rõ hơn không?
function đó trẽ return tưng thread 1 chứ không return cùng lúc
Thanks Viblo ! Tôi đã thấy rồi.
nguyentiendat1892@gmail.com thanks a
Xin chào bạn. Viblo có chức năng
clip
cũng nhưvote up/down
để giúp bạn đánh giá bài viết, cũng như để gửi lời cám ơn đến tác giả.Bạn có thể tìm hiểu thêm về các chức năng này tại bài viết giới thiệu về Viblo ở đây nhé