在提交之前和提交之后都有相同的操作

时间:2014-12-31 15:46:31

标签: ruby-on-rails

我想知道是否有可能有相同的操作,例如Users#connexion,并且为此提供了一个GET请求,它给出了连接的形式,并且从同一个动作,一个用于使用数据的POST通过表格发送。

因为目前我有一个用户#连接操作,它连接一个用户,一个空操作用户#getconnect,它会路由到表单。

连接用户#操作

def connect
    if usr = User.find_by(:student_number, params['student_number']) && usr.password == params['password']
      session[:user] = usr 
      puts "connexion OK"
    else
      puts "Fail connexion"
    end
    respond_to do |format|
      format.html { redirect_to users_url, notice: 'Connect!' }
    end
  end

getConnect

def getConnect

end

的routes.rb

  get '/connexion', to: 'users#getConnect'
  post '/connexion', to: 'users#connect'

编辑: 好的,这很简单,你的答案有效,对我很羞耻......

def connect
    if request.post?
      if usr = User.find_by(:student_number, params['student_number']) && usr.password == params['password']
        session[:user] = usr 
        puts "connexion OK"
      else
        puts "Fail connexion"
      end
      respond_to do |format|
        format.html { redirect_to users_url, notice: 'Connect!' }
      end  
    end
  end

非常感谢您的评论,有效地我不需要“else”语句,视图会自动呈现!

1 个答案:

答案 0 :(得分:1)

您可以使用:

def connect    
    if request.post?
      #Something
    else
      #Something else
    end
end