【问题标题】:Rails - How can I put the create/new action from one controller into the index of another controller?Rails - 如何将一个控制器的创建/新操作放入另一个控制器的索引中?
【发布时间】:2016-05-24 17:47:01
【问题描述】:

我是新人。如果在我诚挚道歉之前有人问过这个问题,那么我不太擅长找到要搜索的词。

我有两个控制器:游戏和预测

将游戏视为博客文章。当一个新游戏生成时,我将它们全部发布到 /games/ (我为整个网站创建了我的索引页)

这些游戏都有选项,底部有一个表单提交按钮。有没有办法让这个提交按钮从预测控制器生成一个新的预测?我想我要问的是我可以在游戏控制器的索引上渲染预测控制器的创建/新方法吗?是否像将 form_for 操作与 index.html.erb 文件中的所有字段一起放入游戏视图一样简单?

提前致谢。我确定我不是唯一一个被问到这个问题的人,所以我会更广泛地搜索 SO。

【问题讨论】:

  • 是要路由到新页面还是在当前页面上渲染?
  • 我什么时候提交?我想我想在当前页面上呈现它。哦,我可以把 在游戏/索引视图的正确位置?可能会有一些路由问题。我现在要试试这个。

标签: ruby-on-rails


【解决方案1】:

听起来您想向预测控制器提交带有表单信息的请求。然后,您希望预测控制器返回一些 html,然后您可以在页面上呈现而无需刷新。

为此,您应该阅读有关使用 Rails 发出 AJAX 请求的内容。我快速谷歌了一下,发现这篇文章似乎是对它的一个非常快速的解释。他们的描述中可能会有一些空白,但我认为它可以让你大部分时间到达那里:

https://coderwall.com/p/kqb3xq/rails-4-how-to-partials-ajax-dead-easy

一般的想法是您的页面将向服务器发出请求,就像正常的页面请求一样,除了浏览器不会使用请求的响应重新加载页面。相反,您将编写一些 javascript 来指示浏览器在收到响应后如何处理它。

【讨论】:

  • 我浏览了该指南,然后就类似的想法分支了几个小时。我想在我什至关心动态更改一页上的信息之前,我想让表单只重定向。例如,当“/games”上的表单提交时,我希望它提交一个新的预测对象,然后转到“/predictions”,在那里我有显示所有预测的 show 方法。我只是感到困惑,因为在表单的
  • 我对 Rails 非常生疏,但我认为,根据您的描述,游戏与一个(或多个)预测有关。我认为您想要的是收集创建新预测所需的所有数据。页面上的每个@game 都有表格吗?如果是这样,您可能可以使用 呈现每个表单。这是假设游戏模型与预测建立了关联(游戏模型中的“has_many :predictions”)。这是我能追踪到的最接近的场景:stackoverflow.com/questions/14702459/…
  • 这正是我正在寻找的关联。我的头脑刚刚清醒了,谢谢!
猜你喜欢
  • 2012-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 2016-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多