(Rails)从不同视图中的控制器访问方法

Posted

技术标签:

【中文标题】(Rails)从不同视图中的控制器访问方法【英文标题】:(Rails) Accessing methods from a controller in a different view 【发布时间】:2012-07-09 03:55:19 【问题描述】:

在 Rails 中,例如,我如何访问 Home 视图中 Post 控制器中的方法?我很确定它涉及助手,但我似乎无法正确处理。

很抱歉,如果这个问题已经被问过,但我不知道要寻找什么。

【问题讨论】:

你是对的。 Post 控制器是为 Post 视图保留的,因此 Home 视图不能使用 Post 控制器中的方法。你想访问什么方法?你想干什么?您可以通过在 HomeHelper 中创建必要的方法来完成大部分您需要做的事情。 我正在尝试遵循入门指南 (guides.rubyonrails.org/getting_started.html)。目前,我正在尝试在我的主页视图中列出每个帖子的名称。 您没有使用 Post 控制器的方法,而应该使用 Post 模型类的方法。 @posts = 您的 Home 控制器中的 Post.all 是有效的。 【参考方案1】:

您可以将方法放在辅助模块中,也可以在控制器中使用 helper_method,(查看过去的*** question 了解有关 helper_method 的更多信息。

【讨论】:

【参考方案2】:
    如果您要从PostController 访问的方法是 7 CRUD 功能,我建议你弄清楚你的功能是什么 想要复制并将其移动到单独的方法中并执行第 2 步。 将您要分享的方法移至PostsHelper。然后你可以 include PostsHelper in HomeController 并使用以下函数 在那里。

【讨论】:

以上是关于(Rails)从不同视图中的控制器访问方法的主要内容,如果未能解决你的问题,请参考以下文章

Rails 从数据视图链接到控制器中的操作

如何从控制器路由 Rails 4 获得不同的和多个视图

从 Rails 中的其他控制器调用方法

Rails:如何跨视图访问模型和控制器数据?

Ruby on Rails - 从视图调用控制器方法

从rails中的控制器渲染部分