0
Sử dụng i18n trong application controller như thế nào
Chào các anh chị, em cũng mới học RoR, mong mọi người giúp đỡ Chẳng là em dùng flash trong application_controller, kiểu như
class ApplicationController < ActionController::Base
...
private
def abc
...
flash[:danger] = t ".def"
end
end
trong 1 controller khác được kế thừa ApplicationController em muốn xử lý như sau:
class CategoryController < ApplicationController
before_action :abc, only: :show
def show; end
end
trong file en.yml:
en:
controllers:
application:
abc:
def: xyz
em thử thì thấy khi gọi đến action show của Category, thì đều bị lỗi template missing, mặc dù trên tầng application controller em đã khai báo. Em nghĩ do mình đã cho Category controller kế thừa application controller, khi đó mình gọi hàm abc là gọi hàm này của Category controller. Em chưa xử lý được, mong mn giúp đỡ!
Thêm một bình luận
1 CÂU TRẢ LỜI
+3
Trong controller muốn sử dụng I18n thì bạn phải viết chính xác (không sử dụng cơ chế lazy lookup giống trong view được) như sau:
I18n.t "controllers.application.abc.def"
Dạ em cám ơn ạ