Rails rails model 里如何调用 controller 里的方法

542307299 · 2013年08月16日 · 最后由 542307299 回复于 2013年08月23日 · 4880 次阅读

rails model 里如何调用 controller 里的方法?

别这样做。

#1 楼 @Rei 但是我实在不会做了,只有这么做能解决我的办法,有方法 没、。求助。。。可以这么引吗? delegate "方法名", :to => "Admin::CccccdController"

#2 楼 @542307299 你可以描述你的需求。

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 数据文件。

#6 楼 @Rei a 和 b 是我打比方起的名字,model 调控制器方法时,为什么老报这个错 uninitialized constant Admin::CourseController

8 楼 已删除

#6 楼 @Rei 提个意见 rubychina 能不能显示每个人的名字,而不是 id

需要 登录 后方可回复, 如果你还没有账号请 注册新账号