Rails 3 显示文本字段,除非它只有"@"



在我的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 %>

相关内容

  • 没有找到相关文章

最新更新