Sử dụng unaccent của Postgres trong laravel
Bạn thử cài nó vào trước xem có được không ?
CREATE EXTENSION IF NOT EXISTS unaccent;
DROP EXTENSION unaccent;
Active Storage Amazon S3
Bạn có thể làm thế này:
$ url_for(User.first.images.first)
=> http://localhost:3000/rails/active_storage/blobs/eyJfcmFpbHMiOn...
hoặc
rails_blob_url(User.first.images.first)
=> /rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJB...
để lấy link ảnh thông qua app, nó sẽ redirect về S3.
Hỏi về cách làm cho terminal của ubuntu bình thường đẹp như gitbash
-
Terminal của Ubuntu thì có
bin, bash, zsh
... Mặc định thì mình đang sử dụngbash
, bạn có thể tham khảozsh
và themeoh-my-zsh
được khá nhiều người sử dụng. -
Mình có bài viết hướng dẫn ở đây, tự quảng cáo cho bài của mình vậy, hehe =))
Ảnh demo như thế này
Mount Volume để share dữ liệu giữa host và container trên (host window)
Có thể setting mount volume bằng 2 cách: ở câu lệnh run docker image
hoặc trong docker-compose
- Cách của bạn đang làm là cách 1, lỗi này khả năng là do bạn chưa tạo thư mục đó trong máy ảo container, bạn thử cập nhật
Dockerfile
xem, thêm câu lệnhRUN mkdir /urc/src/app
.
Hoặc cũng có thể set thư mục này là thư mục làm việc mặc định bằng cách dùng WORKDIR
Xin tư vấn về rails
- Sửa trang hiển thị lỗi:
Theo như bạn mô tả thì màn hình đó chỉ hiển thị ở môi trường development
, còn ở môi trường staging
hoặc production
thì rails đã define sẵn các trang để hiển thị rồi, ví dụ như thế này:
Bạn có thể chạy rails s -e staging
để kiểm tra điều trên.
Còn nếu bạn muốn custom trang hiển thị lỗi thì làm như sau:
- Config để khi trỏ exception vào routes.
config/application.rb
config.exceptions_app = routes
- Config để router nhận các exception:
%w(404 422 500 503).each do |code_error|
match code_error, to: "errors#default", via: :all
end
- Tạo
controller
vàview tương ứng
như bạn vừa define là được.
Nếu bạn muốn ở cũng hiển thị trang default error
ở development thì thêm 1 setting nữa:
config/environments/development.rb
# Show full error reports.
config.consider_all_requests_local = true
- Hiện nay, việc lưu ảnh thì thường sẽ lưu trữ trên server Amazon bạn ạ, rails app sẽ chỉ lưu trữ đường link và một vài thông tin của ảnh.
Rất tiện lợi khi Rails 5.2 đã ra mắt chức năng Active Storage :
Bạn có thể đính kèm bất kì một têp gì vào record trong database (image, excel, word ...) và có cần config một chút sẽ có thể lưu tệp ở amazon hoặc azure hoặc google cloud
tùy bạn chọn lựa. Khá hữu ích và dần các dự án đang chuyển sang dùng cái này, bạn tham khảo nhé !
Có upload file qua Ajax được không?
Òa, hôm nọ mình cũng gặp lỗi này, fix mãi không được, cuối cùng phải nhờ support, giờ thì được rồi và đây là một số lưu ý khi dùng ajax để upload file.
- html form cần để enctype="multipart/form-data"
- Dùng FormData() để gửi dữ liệu lên
var form_data = new FormData();
attachment_data= $("#chat").find("input")[0].files[0];
form_data.append("attachment", attachment_data);
- Ajax cần dùng
contentType: false, processData: false,
$.ajax({
type: "POST",
data: form_data,
url: "/admin/chats",
contentType: false,
processData: false,
headers: { "X-CSRF-Token": $("meta[name='csrf-token']").attr("content") },
success: function (data) {
# Your code here
},
error: function (data) {
# Your code here
}
});
Note: Trong quá trình làm thì bạn nên debug từng bước một, để chắc chắn từng bước đã làm đúng, ví dụ như:
Debug ở client:
Rồi check network:
Chú ý phần:
Rồi debug trên server xem nhận được file chưa ?
...::Parameters {"attachment"=>#<ActionDispatch::Http::UploadedFile:0x00007fbdc519e2d8 @tempfile=#<Tempfile:/tmp/RackMultipart20181212-1-ff18dv.png>, @original_filename="Screenshot from 2018-06-05 08-33-49.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"attachment\"; filename=\"Screenshot from 2018-06-05 08-33-49.png\"\r\nContent-Type: image/png\r\n">,
Seed dữ liệu trong Rails bị lỗi kiểu dữ liệu
Trong model Room.rb bạn có dùng serialize :pictures, JSON
https://github.com/BlazingRockStorm/JungleBoys_Liquid/blob/master/app/models/room.rb#L11
Nên bạn thử sửa pictures: 'rooms/room1.jpg',
thành kiểu mảng xem có được không ?
pictures: ['rooms/room1.jpg'],
Note: Rails 5.2 mới bổ sung tính năng Active Storage, bạn có thể đính kèm bất cứ tệp gì vào mỗi bản ghi, sẽ tiện lợi hơn đó, dự án mình đang làm cũng sử dụng. https://edgeguides.rubyonrails.org/active_storage_overview.html
Các kĩ năng
Tổ chức
Chưa có tổ chức nào.