在我的Rails 3 web应用程序中,我在其中一个表单中有一个Twitter文本字段,它会在用户页面上显示它
<%= f.label :twitter, "Twitter Username" %>
<%= f.text_field :twitter, :value => "@" %>
在用户页面上:
<% if @user.twitter? %>
<div class="twitter"><%= @user.twitter %></div>
<% end %>
问题是,当用户没有在字段中输入他们的Twitter用户名时,它会将@
保留在字段中并显示在用户页面上。因此,如果它只有@
,那么它就不会显示它。
如果用户没有指定twitter名称,@
值似乎会持久化到数据库中,对吧?你确定要吗?
在控制器中,当保存用户时,可以执行以下操作:
user.twitter = params[:user][:twitter] unless params[:user][:twitter] == "@"
这将确保只有在指定了某个内容时才设置User#twitter
字段。
但为了具体回答你的问题,你可以这样做:
<%= @user.twitter == "@" ? "(not provided)" : @user.twitter %>