gpt4 book ai didi

ruby - 如何在 ruby​​ volt 中添加按钮?

转载 作者:数据小太阳 更新时间:2023-10-29 08:03:36 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何在 ruby​​ volt 框架中添加一个按钮 - 这确实是一个初学者问题。

我已经尝试修改 todos 示例(part 1part 2),但没有成功。

我不太确定是我的 html 有误还是 Controller 代码有误。任何指针将不胜感激。

浇水.html

  <button e-click="add_message">Start Watering</button>

<table class="message_table">
{{ _messages.each do |m| }}
<tr>
<td> {{ m.msg }} </td>
<tr>
{{ end }}
</table>

这确实在页面上放置了一个按钮,但当我按下它时,我希望在 Controller 中触发以下代码,但没有任何反应。

主 Controller .rb

module Main
class MainController < Volt::ModelController
model :store

...

def add_message
p "### Message triggered ###"
_messages << {msg: "test-msg-01"}
end

end

我已经将 p 语句作为检查 - 它绝对不会在按下按钮时触发。

最佳答案

在@ryanstout 的帮助下完成了这项工作 - 非常感谢。

我发布这个答案是因为有两个简单的错误,如果您尝试开始使用 ruby​​ volt 框架,这可能是陷阱:

Controller 代码没问题,但是html中有两个错误:

  1. HTML 中有一个小错误,第二个 <tr>应该是 </tr>关闭行

要点:目前 volt (0.9.3) 或我用于格式错误的 HTML 的 Firefox 版本都没有生成错误,但它可能会阻止您的代码工作 - 在这种情况下按钮没有'工作

  1. 对迭代器变量字段的引用需要前导下划线(因此 m._msg 不是 m.msg)

要点:父对象及其字段需要下划线

HTML 应该是这样的:

<button e-click="add_message">Start Watering</button>

<table class="message_table">
{{ _messages.each do |m| }}
<tr>
<td> {{ m._msg }} </td>
<tr>
{{ end }}
</table>

希望这对其他人有帮助。

关于ruby - 如何在 ruby​​ volt 中添加按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31256137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com