首页 > 解决方案 > 如何在 Rails 表单中设置默认 url

问题描述

在我的应用程序中,用户可以列出某人的 instagram 个人资料,但他们必须将整个 url 复制并粘贴到表单中。

<%= f.url_field :url,required: true,label: "URL (required)" %>

如何在我的表单中将默认 url 设置为 instagram.com/,以便他们只需要输入用户名?

标签: ruby-on-railsformsdefault-value

解决方案


您可以只询问用户名,然后在控制器/表单模型中删除@(如果有人粘贴 url 而不是用户名,则整个 ' http://instagram.com/ ' 前缀)

<%= f.text_field :instagram_username, required: true, label: "instagram.com/" %>

控制器类似于:

 obj = Model.new(model_params)
 if (username = params.dig(:some_model, :instagram_username))
   username = username.gsub(%r{https?://instagram.com/}, '').gsub(/^@/, '')
   obj.url = "https://instagram.com/#{CGI.escape username}"
 end

推荐阅读