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