Ruby Titleize 简单表单输入
Ruby Titleize Simple Form input
我的用户通过简单的形式将他的大学信息作为参数发送到服务器。
<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 %>
但它不起作用。
输入的第一个参数接收为其生成输入的用户属性,因此,它不是链接 titleize
方法的地方。
您可以做的是在保存记录之前修改发送的值,或者您可能执行的任何操作。例如,如果您将数据发送到创建方法,那么您可以在创建用户并将其保存到数据库后修改它,例如:
def create
@user = User.new(user_params)
@user.university = @user.university.titleize
...
如果您试图在用户键入文本后在客户端上为文本添加标题,您将需要编写一个 javascript 处理程序来在某些事件触发器上操作 DOM (也许在模糊?)。
另一方面,如果您想在将文本存储到数据库之前对其进行标题化,则需要在服务器上进行。将 user-inputted 文本转换为标题化版本,然后再将其分配给您正在更新的记录。
您也可以在您的控制器中尝试这种方式:
user_params[:university] = user_params[:university].titleize
@user = User.create!(user_params)
我的用户通过简单的形式将他的大学信息作为参数发送到服务器。
<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 %>
但它不起作用。
输入的第一个参数接收为其生成输入的用户属性,因此,它不是链接 titleize
方法的地方。
您可以做的是在保存记录之前修改发送的值,或者您可能执行的任何操作。例如,如果您将数据发送到创建方法,那么您可以在创建用户并将其保存到数据库后修改它,例如:
def create
@user = User.new(user_params)
@user.university = @user.university.titleize
...
如果您试图在用户键入文本后在客户端上为文本添加标题,您将需要编写一个 javascript 处理程序来在某些事件触发器上操作 DOM (也许在模糊?)。
另一方面,如果您想在将文本存储到数据库之前对其进行标题化,则需要在服务器上进行。将 user-inputted 文本转换为标题化版本,然后再将其分配给您正在更新的记录。
您也可以在您的控制器中尝试这种方式:
user_params[:university] = user_params[:university].titleize
@user = User.create!(user_params)