2017-01-02 15 views
1

外部APIからデータをインポートするためのドキュメントやヒントを探しています。外部APIからRails 5アプリケーションにデータを呼び出す

私はユーザーがプロフィールに会社を追加できるウェブサイトを構築しています。しかし、私は人々が重複した会社を作ることができないようにしたい。

したがって公式の政府APIからのデータをフォームに入力された整数に照合することで、書類の整数の存在を確認したいと思います。

提案/説明/ヒントを歓迎します。私が解決策を見つけたら、私は明らかにこれをここで共有するでしょう。あなたは次の検証を追加することができます

事前のおかげで、 ジュリアン

答えて

3

あなたはで重複に

を避けるようにするには、会社の名前にユニーク制約を追加することができCompany.rb

validates :name, uniqueness: true 

あなたはまた、重複を避けるために、このようなfind_or_create_byを使用することができます

Company.find_or_create_by(first_name: 'company_name') do |company| 
    company.location = 'Wherever' 
end 

ここにあなたが言っている: 'company_name'という名前の最初の会社を探したり、別の場所に新しい会社を作成したりする。

参考文献:

reference for model validations

reference for find_or_create_by

+0

おかげで、素敵な "迅速かつ汚い" ソリューション。しかし、これは、ユーザーが同じ会社を別の整数で何度も何度も繰り返し作成したり、会社の公式の資料を実際には示さない数字を使用することを控えるものではありません。あなたはそれをある種のセキュリティ対策として見なければなりません。この機能を気密にするためにAPIを使用するつもりです。 –

+1

@JulianHoogendoorn:ハァッ?一意性検証では、ユーザーは重複した会社を作成することができません。あなたが求めていることではありませんか? (もちろん、データベース内の実際の一意のインデックスを使用してアプリレベルの一意性検証をやり直す必要があります。違反することは不可能です)。 –

+1

なぜですか?どのような整数ですか?この回答は正しいものだと思うなら、この答えは正しいものではない、より多くの文脈をあなたに提供してください。たとえば、一意であると検証する必要があるフィールドを指定できます。あるいは、この「政府api」とやり取りして一意性をチェックする方法を意味するかもしれないので、このapiのドキュメント、または名前などが必要です。あらゆる情報があなたのアイデアを明確にするのに役立ちます –

関連する問題