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

发布于 2024-11-14 08:20:51 字数 467 浏览 1 评论 0原文

在我的 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 用户名时,它会将 @ 保留在字段中并将其显示在用户页面上。因此,我想这样做,如果它只有 @ 那么它就不会显示它。

In my Rails 3 web app, I have a Twitter text field in one of the forms and on the user page it displays it.

<%= f.label :twitter, "Twitter Username" %>
<%= f.text_field :twitter, :value => "@" %>

And on the user page:

<% if @user.twitter?  %>
  <div class="twitter"><%= @user.twitter %></div>
<% end %>

The problem is, when a user doesn't enter their Twitter username into the field, it keeps @ in the field and displays it on the user page. Because of this I would like to make it so if it just has @ then it doesn't display it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

太阳男子 2024-11-21 08:20:51

如果用户未指定 Twitter 名称,@ 值似乎会持久保存到数据库中,对吧?你确定你想要那个吗?

您可以在控制器中保存用户时执行以下操作:

user.twitter = params[:user][:twitter] unless params[:user][:twitter] == "@"

这将确保仅在指定某些内容时才设置 User#twitter 字段。

但要具体回答您的问题,您可以在视图中执行以下操作:

<%= @user.twitter == "@" ? "(not provided)" : @user.twitter %>

Looks like the @ value gets persisted into the database if the user doesn't specify a twitter name, right? Are you sure you want that?

You could, in the controller, when saving the user, do something like:

user.twitter = params[:user][:twitter] unless params[:user][:twitter] == "@"

This will ensure that the User#twitter field only gets set if something is specified.

But to answer your question specifically, you can do something like this in the view:

<%= @user.twitter == "@" ? "(not provided)" : @user.twitter %>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文