在模型中,我有以下方法:
def some_method
some_obj.new(view_c: view_context).create_some_links
end
抛出异常,并显示以下消息:
未定义的局部变量或方法`view_context'
我完全清楚,从模型中调用与视图相关的方法并不是一个好习惯,但仍然可以:从模型中访问view_context
是否可以将其传递给Plain Old Ruby Object(PORO)创建了一些链接?
更新:根据我上面的代码,一个建议可能就是直接在视图中创建并调用PORO。但是:假设代码要求它通过模型才能创建正确的PORO。
答案 0 :(得分:2)
除非您将view_context
传递给方法,否则是不可能的:
以下是将视图传递给方法的方法(在视图中):
@model_instance.some_method(self) # self is the view itself
现在,轻微的方法改变可以解决问题:
def some_method(view_context)
some_obj.new(view_c: view_context).create_some_links
end