パーマリンク追加エラー

手動でパーマリンクを追加しようとした際にエラーが発生しました

URL フィールドに、すでにパーマリンクを作成済みの値を追加すると、そのエラーを再現できます。その場合、フォームは期待通りに動作していると思いますが、エラーメッセージがあまり役に立ちません。

パーマリンクを追加するたびにこのエラーが発生していますか?それとも特定のパーマリンクでのみ発生していますか?

「いいね!」 1

既に同じ URL が作成されていません。パーマリンクを追加しようとすると、いつもこのエラーが表示されてしまいます :frowning:

「いいね!」 1

おそらく、ウェブインターフェースではなく、コンソールから以下のようなコードでパーマリンクを作成したいはずです。

Permalink.find_or_create_by(url: 'some/path/you/like', topic_id: 123)

こうすれば、複数回呼び出しても問題ありません。

ただし、以下のように記述すると、

Permalink.find_or_create_by(url: '/some/path/you/like', topic_id: 123)

先頭の / が削除されてから作成処理が行われるため、2 回目以降の呼び出しで失敗してしまいます。

もし、最初に誤って作成したパスを削除または変更したい場合は、以下のようにします。

p=Permalink.find_by(url: 'some/path/you/like')
p.destroy if p
「いいね!」 3