use*_*092 8 ruby-on-rails ruby-on-rails-4
我正在尝试将联系表单电子邮件字段默认为current_user.email值.如果没有current_user,则应显示一个简单的输入字段.我尝试了下面的工作,但如果没有current_user,则文本字段不会显示.
<div class="form-group">
<label>Email</label>
<%= f.text_field :email, required: true, class: 'form-control', value:current_user.email if current_user %>
</div>
Run Code Online (Sandbox Code Playgroud)
Phi*_*899 12
它没有显示,因为if语句适用于整个文本字段,而不仅仅是value属性.这将有效:
<% if current_user %>
<%= f.text_field :email, required: true, class: 'form-control', value:current_user.email %>
<% else %>
<%= f.text_field :email, required: true, class: 'form-control'%>
<% end %>
Run Code Online (Sandbox Code Playgroud)
但是,如果你正在使用设计,它会使用一个帮助器方法,通常比current_user更好于用户.我认为你的代码应该是这样的:
<% if user_signed_in? %>
<%= f.text_field :email, required: true, class: 'form-control', value:current_user.email %>
<% else %>
<%= f.text_field :email, required: true, class: 'form-control'%>
<% end %>
Run Code Online (Sandbox Code Playgroud)
http://apidock.com/rails/Object/try
<%= f.text_field :email, required: true, class: 'form-control', value: current_user.try(:email) %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12976 次 |
| 最近记录: |