一、需求
用户在新建个人资料时,填写性别并提交后,以后不能更改
二、思路
1.添加条件判断,当前user资料中如果sex字段为空,用户可以选择
2.用radio或select来做下拉选项,用户可以选择性别为"男"或"女",写入到user的sex栏位中
在新建个人资料时让用户可以有性别选择,此时由于还没有向资料库中存入sex的值,因此sex的值为空
3.当用户将资料提交后,就会写入到资料库中,这时其对应的sex的内容已经不再是空了,那么就不给用户下拉选项,而是直接取出当前用户资料的sex值显示在页面上 ,就形成了用户无法修改性别的效果
三、代码
<h1>编辑用户资料</h1>
<%= form_for :user,url: user_path(@user),method: :put, html: {class: 'form-horizontal',id: "user_form"} do |f| %>
<div class="col-lg-12">
<%= f.label :"性别" %>
<% if @user.sex.nil? %>
<%= f.select :sex, {男: "男",女: "女"},required: true, value: @user.sex %>
<% else %>
<%= @user.sex %>
<% end %>
</div>
<%= f.submit "提交" %>
<% end %>
四、映射
除了让用户可以在填入性别提交资料后不能再次修改性别,我们还可以用这个思路来做一些其他小功能,如用不提交资料后不能修改"姓名","学号","专业"等等。