ruby-on-rails - 将参数传递给 link_to rails 2

标签 ruby-on-rails ruby forms post

我写了下面的表格:

<% 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&oacute su clave?", { :controller => 'usuarios', :action => 'olvido_contrasena', :login =>  }, :post => true %>
            </p>
            <br />
            <p id="error_msg_login"></p>
 <% end  %>

现在,在我的 Controller 中我有:

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

但是,我有两个问题:

  1. 该操作称为 GET(它应该是 POST)。
  2. 没有发送参数[:login][:login]....

我可以在这里做什么?

谢谢!

我通过在用户单击“忘记密码”链接后添加带有新表单的新 View 来解决我的问题。 最简单、最干净的解决方案。

最佳答案

基本上 -

您正在单击链接,该链接不会提交您创建的表单,但“提交”按钮可以提交它。

当您单击链接时,这将发送 GET 请求。如果您想发送带有表单数据的 post 请求,您可以使用 javascript 事件监听器在单击链接时提交表单。

由于未提交表单,您将获得 login[login] 为 nil。

要使用 javascript 提交表单,您将使用 jquery 执行类似的操作 -

$(".linkClass").click(function(event){
    event.preventDefault(); //This will stop get request.

    $("#formId").submit();
})

关于ruby-on-rails - 将参数传递给 link_to rails 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6430843/

相关文章:

mysql - Rails ActiveRecord 删除记录,一次删除一条关联记录

ruby-on-rails - 使用具有连接条件的 Rails STI 模型

ruby-on-rails - Rails 如何在渲染 json 时更改属性名称?

ruby-on-rails - 设计 Controller 如何改变布局?

javascript - 使用 Javascript 添加的 HTML 表单隐藏字段未发布

css - 尝试删除 Bootstrap ,现在无法更改任何 CSS

ruby-on-rails - 使用 %i 和 %I 符号数组文字

Ruby 和 Savon 错误 : POST method not supported by this URL

javascript - 使用 PHP 和 Javascript 的多个提交按钮

javascript - 如何将 Ajax 调用发送到 INPUT 值