目前我的应用程序正在使用设计,我的用户在更新其个人资料时需要输入密码。
我正在为用户的表格实施一个额外的字段,该字段会记住他们的侧边栏导航偏好(展开或折叠)。为了测试,我设置了一个名为" menu_collapsed"的布尔字段。设置为" false"默认情况下。
我正在尝试将此值更新为" true"当用户决定压缩侧边栏菜单时远程。
索引
<li><%= link_to('Toggle', toggle_menu_preference_user_path(@user), :method => :put) %></li>
路线
resources :users do
member { put :toggle_menu_preference }
end
用户控制器
def toggle_menu_preference
@user = current_user
@user.menu_collapsed = !@user.menu_collapsed
@user.save
end
应用程序控制器
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:first_name, :last_name, :email, :account_id, :account_name, :password, :password_confirmation) }
devise_parameter_sanitizer.for(:account_update).concat([:name])
end
当我点击链接时,它会处理请求,但是我想让用户想要包含他们的密码。
是否可以通过仅为此用户属性传递密码要求?
答案 0 :(得分:0)
这似乎就像一个魅力!
在本地主机和Heroku上测试
应用程序控制器(已添加:menu_collapsed)到清理程序
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:first_name, :last_name, :email, :account_id, :account_name, :password, :password_confirmation) }
devise_parameter_sanitizer.for(:account_update).concat([:name, :menu_collapsed])
end
<强>路线强>
resources :users do
member { put :toggle_menu_preference }
end
用户控制器
def menu_preference
@user = current_user
@user.menu_collapsed = !@user.menu_collapsed
@user.save
if @user.menu_collapsed
render :nothing => true
else
render :nothing => true
end
end
查看强>
<%= link_to menu_preference_user_path(current_user), id: "layout-condensed-toggle", remote: true do %>
<div class="iconset top-menu-toggle-dark"></div>
<% end %>