关于 sinatra:onclick 时更改 ERB 文件中 Ruby 变量的值

Change value of Ruby variable in ERB file upon onclick

当用户单击一些文本时,我想在我的 .erb 文件中更改 Ruby 本地参数的值。 (我将 Ruby 与 Sinatra 一起使用,而不是 Rails)。代码如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    <!-- Get ERB to work here -->
    <p>No account?">Register here</p> <!-- Should change new_user to true if clicked -->
    <form class="input-group" style="margin: 0 auto" method="POST" action="/nanotwitter/v1.0/users/session">
        <input class="form-control" type="text" name="username" placeholder="Username">
     
        <input class="form-control" type="password" name="password" placeholder="Password">
      <% if new_user %>
       
        <input class="form-control" type="password" name="password2" placeholder="Repeat password">
      <% end %>
     
     
        <button type="button" class="btn btn-default form-control" style="width: 50%" data-dismiss="modal">Close</button>
        <button class="btn btn-primary form-control" style="width: 50%" type="submit">
          <% if new_user %>
          Register
          <% else %>
          Log In
          <% end %>
        </button>
     
      </form>

显然,onlick 属性中的 Ruby 代码会立即计算,我希望它仅在用户单击时执行。我已经搜索了这个网站和互联网,但我仍然不确定正确/标准的实现是什么。


首先,ruby 不与用户事件交互。 Javascript可以。
其次,什么是 new_user ?简单变量?您想用它来交换表格以进行注册\\\\\\\\ 登录?或者您希望用户真正通过这种方法注册?

如果情况是根据用户的选择向用户显示登录\\\\\\\\ 注册表单(新的\\\\
已注册),您应该只使用 javascript.

一般来说,你应该为两种不同的形式准备标记(注册\\\\\\\\登录)并根据一些javascript变量隐藏它们,用户可以选择。