私はドメインホストのURLレコードは再びそれを作成する前に、ドメインのテーブルに存在するかどうかを確認しようとしていますが、私はこのエラーを取得しています:未定義のnew_record? RubyのRailsの
undefined method `new_record?' for #<Domain::ActiveRecord_Relation:0x007f320ed8af80>
クラスGetMetaが初期化になっているサービスオブジェクトがあるがユーザーがフォームにURLを入力して「送信」をクリックすると、私は、フォームからURLを取得し、MetaInspectorを呼び出してより多くのメタ情報を取得しています。
最初の部分(if)new_recordメソッドは完全に正常に動作していますが、ドメインテーブルに重複した値を作成しています。私は条件付きロジックを作成しようとしましたが、私はこのバグを抱えており、修正方法はわかりません。
class GetMeta
include ActiveModel::Model
def initialize(url)
@url = url
end
def new_record
page = MetaInspector.new(@url)
@domain = Domain.where(:host => page.host)
if new_record?
Domain.create! do |url|
url.root_url = page.root_url
url.scheme = page.scheme
url.host = page.host
url.links.build(url: page.url, title: page.best_title, description: page.description)
end
else
Link.create! do |link|
link.url = page.url
link.title = page.best_title
link.description = page.description
end
end
end
private
def new_record?
@domain.new_record?
end
end
ありがとうございました!コードは機能していますが、存在するメソッドは償却されています(http://apidock.com/rails/ActiveRecord/Base/exists%3F/class)。 – user3100151
apidocsに「メソッドの非推奨または移動」と表示されています。このメソッドは非推奨ではありません - 自分でレールでチェックしてください4.2.6 また、ここで、Domain.where(host:page.host).exists? – nekath
さようなら!それを得ました、ありがとう – user3100151