2017-07-07 45 views
0

我來到How to display a custom sign_in form anywhere in your app,它使用Devise在任何地方放置任何形式。如何在沒有Devise的情況下在主頁上放置sign_up表單?

但我們不想使用Devise。

我已經嘗試使用:

<%= render 'sessions/new', :locals => {:session => Session.new} %> 

而且形式:

<%= simple_form_for(session, url: sessions_path) do |f| %> 

但沒有奏效。

我也試過加載會話,它也沒有工作。

有人有任何提示嗎?

before_filter :load_categories 
    protected 

    def load_categories 
    @sessions = Session.new 
    end 

回答

0

內的routes.rb

resources :sessions, only: [:new, :create] 

應用程序/控制器/ session_controller.rb內

class SessionsController < ApplicationController 
    def new 
    # just put empty here 
    # rails will automatically render views/sessions/new.html.erb 
    # makesure you have this file 
    end 

    # I put create and delete session in case you need it later 
    def create 
    user = User.find_by_username(params[:session][:username]) 
    if user && user.authenticate(params[:session][:password]) 
     login user 
     flash[:success] = "Anda berhasil login" 
     redirect_to yours_path 
    else 
     flash.now[:error] = 'sorry cannot login' 
     render 'new' 
    end 
    end 

    def destroy 
    session[:user_id] = nil 
    flash[:success] = "Log out" 
    redirect_to root_url 
    end 
end 

內部的意見/會話/ new.html.erb(我把樣品登錄頁面所以你可以檢查)

<%= form_for(:session, url: sessions_path) do |f| %> 
<h2>Please sign in</h2> 
    <p> 
    <%= f.label :username, "User name", class: "sr-only" %><br> 
    <%= f.text_field :username, class: "form-control", placeholder: "User name" %> 
    </p> 
    <p> 
    <%= f.label :password, class: "sr-only" %><br> 
    <%= f.password_field :password, class: "form-control", placeholder: "Password" %> 
    </p> 
    <div class="checkbox"> 
    <label> 
     <input type="checkbox" value="remember-me"> Remember me 
    </label> 
    </div> 
    <%= f.submit "Log in", class: "btn btn-lg btn-primary btn-block" %> 
    <h4> 
    <%= link_to "Reset Password?", new_password_reset_path %> 
    </h4> 
<% end %> 
+0

謝謝你的回覆,但我的意思是把表單放在主頁上,而不是創建會話邏輯。 – user8256239

+0

如果你的主頁控制器裏面的方法調用渲染上面用這個命令創建的樣例表格<%= render'sessions/new'%> – widjajayd

+0

工作得很好,奇怪。之前沒有工作過。謝謝你widjajayd。 我錯過了一些東西。 – user8256239

相關問題