【问题标题】:Controller-View Interactions in RailsRails 中的控制器-视图交互
【发布时间】:2018-03-13 13:01:43
【问题描述】:

我正在努力学习 Rails,并通过完成一些超级基础项目来学习。我目前正在做的是一个高低游戏 - 用户猜测一个数字,服务器将猜测与随机生成的秘密数字进行比较,如果猜测比实际“更高”或“更低”,则做出响应号码。

我已经完成了大部分游戏,但我意识到我不知道如何实际实现在猜测过高或过低时通知用户。游戏中的其他视图更改是通过渲染整个其他页面来处理的,但是对于这个我希望在 当前 页面中显示 文本。

这个问题本身并不能真正解决我的问题,我只是想通过诸如此类的控制器-视图交互来指出正确的总体方向。

目前我能想到的唯一方法是

视图中的逻辑

通过使用实例变量使用户猜得更高或更低的数据可用,然后在 html.erb 视图中使用 ruby​​ 来确定基于此显示的文本。

这似乎......愚蠢,并且违反了我过去学到的关于 MVC 的知识。任何其他建议将不胜感激。

【问题讨论】:

  • flash messages 会在这里工作吗?您可以刷新同一页面,但会看到其他内容。如果没有,您可以在控制器@answer 或其他东西中引入一个新变量,并在视图中执行if @answer ... show this message

标签: ruby-on-rails ruby model-view-controller


【解决方案1】:

以“Rails”方式执行此操作的最简洁方法是在您的控制器中创建一个新路径,例如 show_result,并呈现一个 javascript 视图 (show_result.js.erb)。然后使用简单的一行 javascript 来更新当前的 DOM。请记住将您的表单提交或链接设置为:remote => true,然后您就可以开始了。

【讨论】:

    猜你喜欢
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多