2015-06-05 65 views
0

我在製作一個Rails應用程序,並試圖讓用戶的角色顯示在視圖上。我正在使用的代碼是:<%= current_user.role%>在Rails 4中不計算任何東西

<%= current_user.role %> 

哪一個不計算任何東西。

我使用設計的用戶註冊和登錄我的看法如下:

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> 
    <%= devise_error_messages! %> 

    <div class="login-field"> 
     <%= f.email_field :email, :placeholder => "Email" %> 
    </div> 

    <div class="login-field"> 
     <%= f.password_field :password, autocomplete: "off", :placeholder => "Password (8 character min)" %> 
    </div> 

    <div class="login-field"> 
     <%= f.text_field :firstname, :placeholder => "First Name" %> 
    </div> 

    <div class="login-field"> 
     <%= f.text_field :lastname, :placeholder => "Last Name" %> 
    </div> 

    <div class="login-field"> 
     <%= f.text_field :phone, :placeholder => "Phone Number" %> 
    </div> 

    <%= f.select(:role, ['Role 1', 'Role 2', 'Both']) %> 

    <br> 

    <div><%= f.submit "Signup" , :class => "btn btn-success btn-lg" %></div> 

    <% end %> 

    <%= render "devise/shared/links" %> 

我有我做錯事的形式提交的感覺,但無法弄清楚它是什麼。任何幫助表示讚賞

回答

0

您應該覆蓋Devise註冊中的sign_up_params。一旦你創建你的RegistrationsControllerDevise::RegistrationsController繼承,可以覆蓋sign_up_params

class RegistrationsController < Devise::RegistrationsController 

    private 

    def sign_up_params 
    params.require(:user).permit(:first_name, :last_name, :email, :phone, :role ... any other attributes) 
    end 

end 

您還需要改變你routes.rb指向新創建的控制器:

devise_for :users, controllers: {registrations: 'registrations'}

+0

我做了你所說的,但它仍然沒有產生任何東西。 – user3342292

+0

它是否設置了'phone'屬性? – AbM

+0

它似乎只設置電子郵件和密碼 – user3342292

0

你可以把它放在你的頂部createaction

return render text: params.inspect # get what the form sended 

和或

return render text: create_params # get what the values you permitted 

這樣你會得到什麼數據你從sended,如果它是你所期望的。

相關問題