Techioz Blog

Ruby on Rails フォームで wss URL の https 検証をスキップする

概要

Ruby on Rails には、カメラ登録用のこの単純なフォームがあります。名前、IP URL、および WSS URL を要求されます。私の問題は、2 番目の URL (wss) も有効な URL (https 形式) であることを要求していることですが、これは間違っています。この入力の https 検証を無効またはスキップするにはどうすればよいですか?

<%= simple_form_for(@camera, validate: false, html: { role: "form" }) do |f| %>
  <%= f.error_notification %>
  <%= display_base_errors @camera %>

  <%= f.input :name, label: 'Camera name' %>
  <%= f.input :ip, label: 'IP / URL' %>
  <%= f.input :wss_url, label: 'WSS URL' %>

  <%= render 'shared/partials/botones_form', f: f %>
<% end %>

そして、ここに間違った検証があります。赤いツールチップは、「この値は有効な URL である必要があります」を意味します。

解決策

ドキュメントによると

https://translate.google.com/translate?hl=ja&sl=en&tl=ja&u=https://github.com/heartcombo/simple_form#available-input-types-and-defaults-for-each-column-type

:as-Parameter を使用して、このフィールドが URL ではないことを定義できます。

別のオプションは、列の名前を「url」を含めないように変更することです。