【发布时间】:2011-09-19 19:48:27
【问题描述】:
我写了以下表格:
<% remote_form_for :login,
:url => {:controller => :usuarios, :action => :login },
:html => { :multipart => true } do |f| %>
<p class="login_field">
Login:<br />
<%= f.text_field 'login' %>
</p>
<p class="login_field">
Clave:<br />
<%= f.password_field 'clave' %>
</p>
<br />
<p align ="right">
<%= f.submit 'Ingresar' %>
</p>
<p class="forgot">
<%= link_to "Olvidó su clave?", { :controller => 'usuarios', :action => 'olvido_contrasena', :login => }, :post => true %>
</p>
<br />
<p id="error_msg_login"></p>
<% end %>
现在,在我的控制器中,我有:
def olvido_contrasena
if request.post?
u= Usuario.find_by_login(params[:login][:login])
puts u.email
if u and u.enviar_nueva_clave
flash[:message] = "Una nueva clave ha sido enviada a su correo electronico."
redirect_to :action=>'login'
else
flash[:warning] = "No se pudo enviar la nueva clave."
puts "fail"
redirect_to "/admin_main"
end
end
end
但是,我有两个问题:
- 该操作被称为 GET(它应该是 POST)。
- 参数[:login][:login] 未发送....
我可以在这里做什么?
谢谢!
在用户单击“忘记密码”链接后,我通过添加带有新表单的新视图解决了我的问题。 最简单、最干净的解决方案。
【问题讨论】:
-
您不清楚您在第 1 点中的要求。关于第 2 点 - 检查登录输入字段,以检查它具有的“名称”字段。我是有问题的。
-
输入字段的名称是“login[login]” ...
-
您希望在单击链接时提交表单吗?
-
不,我只想将输入的“登录”值传递给“olvido_contrasena”(这是一个“忘记密码”链接)
标签: ruby-on-rails ruby forms post