Ruby On Rails:使文本字段不可编辑,并在编辑记录时显示另一个字段
1.如何在编辑记录时使文本字段不可编辑(可读= false)
我的表格视图代码
2.如何在编辑记录时使字段可见。 我在数据库表中有一个字段,我只想在编辑记录时显示以填充,同时创建一个字段不可见的新记录。
解决:
Never Mind Guys我得到了解决方案,
1.
f.object.persisted? %> 2.
如果您希望文本框不可编辑,可以使用小css或前端,如下所示:
<%= f.label t :profile_name %>
<%= f.text_field :profile_name, disabled: disabled %>
或者添加:readonly => true
而不是disabled
。 所以,
<%= f.label t :profile_name %>
<%= f.text_field :profile_name, readonly: true %>
在视图中添加已禁用以生成不可编辑的文本框。 如果它不起作用我们也可以用css。 请告诉我它是否有效。
找到这个的人回答。 我的问题非常接近。 我有一个我想要显示的字段,但没有可编辑的字段。 我正在使用设计,只允许通过设计视图设置电子邮件和密码。
1)禁用表单中的编辑(此步骤提供零安全性):
<%= f.text_field :email, readonly: true %>
2)防止客户端恶作剧(此步骤是实际保护):
# Never trust parameters from the scary internet, only allow the white list through. def user_params # params.require(:user).permit(:email, :phone_number, :password, :password_confirmation) # email and password must be edited via devise controller params.require(:user).permit(:phone_number) end
2b)或者,您可以从编辑集中删除值:
def update params['user'].delete('email') ... end