THẢO LUẬN

Có b nhé, em gái mình bị thất lạc ở Trần Duy Hưng, nhờ bác chở giúp e nó về nhà dùm 😄

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 4 27, 2018 6:34 SA

@huynq1303 Xem qua thì có vẻ còn nhiều vấn đề quá 😄 Mình chỉ chia sẻ vấn đề liên quan đến câu hỏi thôi nhé. Hiện tại nếu bạn xem source html thì thì sẽ thấy fields_for sinh ra các hidden_field cho mỗi product_images. Cho nên hiện tại chỉ cần bật modal edit lên rồi ấn Save luôn thì nó cũng tạo ra hai ảnh. Lý do là bạn chưa permit :id cho nested_attributes. Sửa thành

params.require(:product).permit :name, :price, :quantity,
      :description, :content, :brand_id, :category_id,
      product_images_attributes: [:id, :image]

là OK vụ không bị duplicate ảnh nữa nhé. (Thực ra để như bây giờ nó sẽ nhân lên theo luỹ thừa 2 😄) Chúc bạn học rails thành công 😃

+1

Mình vẫn đang mở lớp dạy mà, bạn có em gái không, mình miễn học phí =))

0
thg 4 27, 2018 5:53 SA

ko chọn gì thì bảo ko chon =)))

0

tôi không chọn gì cả. tôi vào đây comment chỉ là do bị ép =((

+1
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 4 27, 2018 4:36 SA
0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 4 27, 2018 3:17 SA

@huynq1303 Nhìn params có thể bạn cũng thấy là khi file_field được PUT controller, thay vì nó đè file bạn mới up thì nó append thêm 1 file (trong ảnh là id 30?) vào trong product_images_attributes đúng không?

Mình lâu lắm không động vào nested_attributes kèm với view nên không chắc lắm. Bạn thử cách sau nhé

Ở form thay vì product[product_images_attributes][][image] bạn hãy thử product[product_images_attributes][0][image]. Tức là thay vì để helper chủ động chỉ định index thì mình báo là file tôi sắp up là file đầu tiên trong attributes đấy, có thể nó sẽ đè lên cái index cũ cho bạn 😄

Như bạn nói sau này một Product sẽ có thể có nhiều ProductImage (trong model bạn cũng để là has_many) thì lúc muốn update từng cái ảnh riêng biệt có lẽ cũng cần chỉ định index đúng cho nó, hoặc làm một cách an toàn và đỡ hại não hơn là viết controller riêng cho ProductImage 😃

P.S. Nếu cách trên không được và bạn đang làm để học Rails thì bạn share link git project của bạn đang làm cho mình được không 😄 Không thì có thời gian mình sẽ làm 1 cái tương tự, lâu rồi cũng nên cập nhật lại chút kiến thức cũ 😦

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 4 27, 2018 2:48 SA

vâng hiện giờ e đang dùng chung form cho create và update

vâng chính xác là có thêm 1 product_images được sinh ra

đây là đoạn code update của e ạ

update.PNG

Screenshot from 2018-04-27 09-46-20.png

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 4 27, 2018 2:21 SA

@huynq1303 Sorry bạn mình reply chậm. Mình cũng đang nghĩ đến một vài khả năng đang biến chức năng replace ảnh của bạn thành chức năng thêm ảnh mới 😃 Để cho rõ ràng hơn bạn cho mình hỏi

  • Bạn dùng chung form cho #create và #update đúng không?
  • Bạn nói có thể ảnh mới tức là có thêm 1 record ProductImage được sinh ra đúng không?
  • Bạn có thể cho mình xem đoạn products#update được không 😄
  • Nếu được bạn đặt debug vào products#update (binding.pry hoặc byebug) rồi in params ra hộ mình được không.
0
Avatar
đã bình luận cho bài viết
thg 4 27, 2018 2:06 SA

Cho em hỏi là : public static <T> int countOccurrences(Collection<T> collection, T itemToCount) . Thì <T> là có phải là kiểu trả về không ạ, em thấy có int rồi thì tại sao còn cần <T> ạ, hay nó có nghĩ là mình có thể trả về một kiểu khác ngoài kiểu int đã định sẵn ??? em cảm ơn

0
thg 4 27, 2018 1:59 SA

Theo ví dụ trên thì searchMovie("Doctor Strange") chính là api call đấy bạn. Nếu bạn kết hợp với retrofit thì sử dụng luôn các endpoint trong interface của retrofit

interface MovieAPI {
   @GET("v3/search")
   Observable<List<Movie>> searchMovie(@Path("query") String query);
}
0
thg 4 27, 2018 1:32 SA

ĐM M lại bảo nhớ đợt training 2 thằng ngồi fix conflict ở cái storyboard đi

+1

Bạn có khiếu giảng dạy đó, minh nghĩ b nên mở lớp dạy online 😄

0

Theo em thì đúng là cũng cần xây dựng 1 roadmap riêng cho VN thật. Cơ mà ko biết có bao nhiêu người đồng ý và cùng đóng góp....

+2
thg 4 26, 2018 3:16 CH

mỗi người, mỗi cách nhìn nhận vấn đề lại khác nhau. giống như cách để đi đến đích lại có nhiều đường. mình chỉ nghĩ theo những gì mình tìm hiểu và đưa ra ý kiến riêng thôi. thật ra cũng khó mà cho rằng như nào là đúng và toàn vẹn, mọi thứ chỉ là tương đối

+2
thg 4 26, 2018 3:15 CH

a còn dám vào đây cmt -_-

0

Em chào anh ạ. Em đã đọc các bài viết của anh về Blockchain và thấy rất hay, bổ ích. Em đang làm một bài nghiên cứu về Blockchain, em muốn xin anh thêm về những nguồn mà anh đã tham khảo để viết nên bài này ạ? Hoặc anh có thể cho em xin thêm thông tin về anh được không ạ để em có thể trích dẫn vào trong bài ạ. Em cám ơn anh.

0

Cám ơn bạn vì đã chia sẻ. Tuy nhiên, mình thấy bài viết còn sơ sài và sai tiêu đề. Mình chưa thấy bạn đề cập đến API như trong tiêu đề.

0
thg 4 26, 2018 12:29 CH

tks sir

+1

Thực ra thì theo vài ad ở cộng đồng FCC Hà Nội thì roadmap này cũng ko đc tốt cho lắm. Lý do là nó hợp với mấy ông Tây chứ ko đặc thù cho VN....

+1
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí