我正在制作一个小表单,我尝试做的是让其中一个文本字段仅在创建通知时获取值。我有:
<%= f.label :User_ID %>
<%= f.text_field :user_id, :value => current_user.id ,:readonly => true %>
我的问题是,当其他用户正在编辑通知时,此文本字段会自动更改其值。我不知道如何让它发挥作用。谢谢!
答案 0 :(得分:1)
在您的视图中,您可以检查用户ID是否已存在,如果是,则不显示用户ID text_field:
<% unless user_id.exists? %> #only if user_id is not present, show the text_field
<%= f.text_field :user_id, :value => current_user.id ,:readonly => true %>
<% end %>
另一种选择是将布尔值添加到您引用的模型中。例如,通知模型:
通知:字符串 编辑:布尔值(默认值:true)
用户创建通知后,您可以使用after create将“edit”的布尔值设置为false。
用户下次编辑该通知时,您会在视图中执行与以前相同的操作:
<% unless @notification.edit? %> #only if edit is set to true, show the text_field
<%= f.text_field :user_id, :value => current_user.id ,:readonly => true %>
<% end %>
这有点模糊,但它让你知道如何做到这一点。