我正在尝试使用他们的用户帐户密码限制我的一些用户的操作。我有一个转账控制器,用户可以使用转账控制器中的create方法进行转账。
每次用户单击转移按钮以验证转移时,我都想要求输入密码,但我在网上找不到与此相关的任何内容。
我想在视图中添加一个密码字段,并且仅当密码是用户帐户密码时才处理传输。
我正在使用设计来管理我的用户帐户。
我怎么能那样做?
谢谢,
形式 :
<%= form_for current_user.transfers.build do |f| %>
<div class="amount">
<h5>Select an amount</h5>
<div class="amount-btns">
<a class="amount-btn" href="#"><span data-amount="10">10$</span></a>
<a class="amount-btn" href="#"><span data-amount="20">20$</span></a>
<a class="amount-btn" href="#"><span data-amount="30">30$</span></a>
<a class="amount-btn" href="#"><span data-amount="50">50$</span></a>
<%= f.hidden_field :amount, :id => :amount %>
<%#= f.hidden_field :teen_id , :id => :user_id_auto_donation %>
</div>
</div>
<div class="choose-amount">
<div class="choose-amnt" action="#">
<div class="form-row choose-lnk">
<%= f.collection_select :teen_id, current_user.followed_users, :id, :first_name , include_blank: false, :prompt => 'Select a Teen' %>
</div>
<%= hidden_field_tag :no_card if !current_user.customer_id? %>
<%= password_field(:password, :password, :size => 20, :class => 'form_input') %>
<%= f.submit 'Send', :class => "orange-btn", :id => "send_donation"%>
<% end %>
转移控制器:
def create
Rails.logger.debug(params[:password])
Rails.logger.debug(current_user.valid_password?(params[:password]))
if current_user.valid_password?(params[:password])
....
else
redirect_to :back
end
Rails.logger.debug(params[:password]) 返回我输入的密码和正确的密码。
Rails.logger.debug(current_user.valid_password?(params[:password])) 返回 false 但如果我将 params[:password] 替换为实际密码,则返回 true
谢谢你的帮助 !