如何提交form_tag来更新当前页面?

时间:2014-12-11 12:02:24

标签: ruby-on-rails

我是编码和Rails的新手。我已经完成了迈克尔哈特尔的Rails教程,但我仍然非常原始。我希望有人可以向我解释这一点或指向我的资源。我的谷歌技能让我失望。

当用户登陆我的主页时,我正在为他们生成随机密码。但是如果他们想要生成一个新密码,我想为他们提供一些选择。我开始大写一个随机字母。

<%= form_tag(root_path, method: 'get') do %>
  <%= check_box_tag(:random_capital) %>
  <%= label_tag(:random_capital, "Capitalize a random letter") %>
<%= submit_tag("Generate a new password") %>
<% end %>

我在我的主页上有以上表格,当我勾选复选框时,我确实设法通过实例变量获得值1,并且可以将该值与新密码一起显示回我的主页

但是我的控制器动作中的这段代码永远不会触发

  if @randomness == 1
    random_capital words
  end

所以我在提交表单时会收到一个新密码,但不会随机提供资金。

我哪里错了?

2 个答案:

答案 0 :(得分:0)

您需要检查params[:random_capital],而不是@randomness。我还建议将这个逻辑移到一个单独的控制器上。

答案 1 :(得分:0)

原来错误在以下代码中

if @randomness == 1

我没有意识到params [:random_capital]的值是一个字符串,而不是一个整数。

if @randomness == '1'

修好了。