我试图找出如何在ruby伏特框架中添加一个按钮 - 它确实是一个初学者问题。
我已经尝试调整todos示例(part 1和part 2),但还没有让它发挥作用。
我不太确定我是否有错误的HTML或控制器代码。任何指针都将非常感激。
watering.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>
这确实在页面上放了一个按钮,但当我按下它时,我希望在控制器中触发以下代码,但没有任何反应。
main_controller.rb
module Main
class MainController < Volt::ModelController
model :store
...
def add_message
p "### Message triggered ###"
_messages << {msg: "test-msg-01"}
end
end
我已将p语句作为支票输入 - 当按下按钮时,它肯定不会被触发。
答案 0 :(得分:2)
得到了@ryanstout的一些帮助 - 非常感谢。
我发布了这个答案,因为有两个简单的错误,如果你试图开始使用ruby volt框架,那么这些错误就是潜在的问题:
控制器代码很好,但html中有两个错误:
<tr>
应该</tr>
关闭行外卖:目前没有由伏特(0.9.3)或我用于格式错误的HTML的Firefox版本生成的错误,但它可能会阻止您的代码工作 - 在这种情况下按钮没有'工作
外卖:父对象和其字段需要下划线
以下是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>
希望对别人有所帮助。
答案 1 :(得分:0)
这似乎是正确的。但请记住 - 控制器在客户端运行。所以你应该在浏览器控制台中看到p语句的输出。
只是为了确定 - 您的观点位于app / main / views / main /?