rails model 里如何调用 controller 里的方法?
#3 楼 @Rei 我之前的在社区问过这个问题,一个加盟店系统------locales 下的一个 a.yml(里面设置各个加盟店页面 label 和下拉条等信息)-------model 下 rb 文件国际化;但是现在想只为某一个加盟店修改一些页面信息,于是在 locales 下增加了一个 yml 文件 b.yml 同样在对应 model 的 rb 文件,但是当修改页面 label 和下拉条的字段对应 b.yml 时 (j: name:“马云” class1:1 班 class2: 2 班 class3:3 班 ),有的 label 走的是 b.yml,但是有一些下拉条的字段等等,走的却是 a.yml,所以页面显示不是姓名马云,和年级下拉条:1 班,2 班,3 班;显示的是 a.yml 里的姓名刘强东,年级下拉条:5 班,6 班,7 班 版本:ruby1.8.7;rails2.3.17 在 model 里用 [I18n.t("j.class1"), '1'], [I18n.t("j.class2"), '2']] 调的始终是 a.yml 里的名字,只用在控制器里用 t()调出的才是 b.yml 的名字,在 model 里有乱七八糟不知道做什么的方法,需要对从 t()里取出的名字做处理,所以我要调控制器里的方法,大致是这么回事。
a 和 b 是什么?locales 下的命名规则是 {lang}.yml,我感觉你没按这个规则放文件。要指定某个 locale,可以强制设置
I18n.locale = :en
I18n.t 'some_text' # => en locale
我不懂加盟店的业务逻辑,但我觉得不应该用 I18n 的 api,可以另外写个 yml 数据文件。