提交按钮运行Create方法,而不是Logon

时间:2013-04-23 02:44:11

标签: ruby-on-rails ruby model-view-controller haml

我们为Ruby on Rails项目实现了一个简单的登录方法,我们在页面上有一个按钮,用于提交用户将要输入的登录信息,但不是指向我们的登录方法,而是提交按钮运行我们的创建方法并尝试创建另一个用户。

def login
  username = params[:username]
  password = params[:password]
  if(username == NIL || password == NIL)
    loginfailed
  else
    comparisonUser = User.where("username = ?", username)
    if(comparisonUser == NIL)
      loginfailed
    else
      comparisonPassword = comparisonUser.password
      if(comparisonPassword == password)
       flash[:notice] = "Login Successful"
         @user = comparisonUser
      else 
        loginfailed
      end
    end
  end
end

这是Create方法:

def create
  @user = User.create!(params[:user])
  flash[:notice] = "User,  #{@user.username} was successfully created."
  redirect_to questions_path
end

以及网页上登录按钮的代码:

            =  form_tag users_path do
              =  label :userlogin, :username, 'Username'
              =  text_field :userlogin, :username
              %br/
              =  label :userlogin, :password, 'Password'
              =  text_field :userlogin, :password
              %br/
              = submit_tag 'Login', :id => 'Login'

我可能需要在submit_tag中添加更多信息,但我不知道该怎么做。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您要发布到users_path,这通常是创建操作(除非您修改了路径)。

而不是form_tag users_path您需要引用适当的路线。