ruby-on-rails - 如何在 Rails 表单中设置默认 url
问题描述
在我的应用程序中,用户可以列出某人的 instagram 个人资料,但他们必须将整个 url 复制并粘贴到表单中。
<%= f.url_field :url,required: true,label: "URL (required)" %>
如何在我的表单中将默认 url 设置为 instagram.com/,以便他们只需要输入用户名?
解决方案
您可以只询问用户名,然后在控制器/表单模型中删除@
(如果有人粘贴 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
推荐阅读
- java - 在 Java EE (glassfish, jersey) 下运行时,Hibernate 确实无法读取数据库
- javascript - 为什么按钮没有打开按下按钮的模态?
- java - 自定义 Jackson 转换器不受 Spring 管理
- android - 如何学习最新的稳定次要版本的 Android 支持依赖项?
- python - Fabric v2 覆盖 --hosts 行为
- mysql - 从表中查询 Product 和 Product_Photo 有超过 1 张图片 只显示 1 张图片
- angular - 以角度创建模型类的最佳方法是什么?
- javascript - React-native App 在发布模式下崩溃?
- javascript - 注销时重置 redux 状态
- php - 如何在 SimpleSAMLPhp + (Laravel App + SP) 中使用 IDP 初始化 SSO 流