代码之家  ›  专栏  ›  技术社区  ›  WQ.Kevin

Ruby Titleize简单表单输入

  •  1
  • WQ.Kevin  · 技术社区  · 9 年前

    我的用户通过简单的表单作为参数提供他的大学信息,并将其发送到服务器。

    <div class="col-xs-12 col-s-4 col-sm-4">
      <%= simple_fields_for :users do |r| %>
        <%= r.input :university, required: false, placeholder: "University", label: false %>
      <% end %>
    </div>
    

    如何对用户提供的参数输入进行标题化?

    <%= r.input :university.titleize, required: false, placeholder: "University", label: false %>
    

    但它不起作用。

    3 回复  |  直到 5 年前
        1
  •  2
  •   Sebastián Palma    9 年前

    titleize

    def create
      @user = User.new(user_params)
      @user.university = @user.university.titleize
      ...
    
        2
  •  1
  •   hoffm    9 年前

    如果您试图在用户键入文本后在客户端上对其进行标题化,则需要编写一个javascript处理程序,以在某个事件触发器(可能在blur?)上操作DOM。

    另一方面,如果要在将文本存储到数据库之前对其进行标题化,则需要在服务器上进行。在将用户输入的文本分配给您正在更新的记录之前,请将其转换为标题化版本。

        3
  •  -1
  •   Sebastián Palma    9 年前

    您也可以在控制器中尝试这种方式:

    user_params[:university] = user_params[:university].titleize
    @user = User.create!(user_params)