1

まず最初に、私はレールとルビーに非常に慣れていません。

カスタムURLのスラッグを作成しようとしています。

first_nameとlast_nameのユーザーモデルがあります。このモデルにもナメクジがあります。

私がやろうとしているのは、データベースをチェックして、作成するスラッグのインスタンスがあるかどうかを確認することです。ジョーブログがいくつ存在するかを確認してください。存在しない場合は、URLwhatever.com / joe-blogsを取得し、0より大きい場合は、countwhatever.com/joe-blogs-COUNTの値を取得します

ナメクジを生やしたときにやろうとしたこと

  def generate_slug
    NoSlug == Users.sum("slug").where(:slug => first_name-last_name.perameterize)
      if NoSlug == 0
        self.slug ||= first_name-last_name.perameterize
      else NoSlug > 0
        self.slug ||= first_name-last_name-NoSlug.perameterize
      end
  end 

私はそれを修正しようとしましたが、そのような運はありません-何か提案やポインタはありますか?

ありがとう!

4

2 に答える 2

8

私はFriendlyIdgemを使用していて、満足しています。名と名前を組み合わせたい場合は、次のようにすることができます

class User < ActiveRecord::Base
  extend FriendlyId
  friendly_id :full_name, use: :slugged

  def full_name
    "#{first_name} #{last_name}"
  end
end

宝石はあなたのためにそれをパラメータ化するのを引き受けます。このRailsCastも役立つかもしれません。

于 2013-01-09T06:43:31.627 に答える
0

これらのメソッドをモデルに記述します

before_validation:generate_slug

def name
"#{first_name}#{last_name}"
end

def generate_slug
self.slug = self.name.downcase.gsub(/ \ s + /、'-')。gsub(/ [^ a-zA-Z0-9 _] + /、'')
end

于 2014-03-01T13:04:54.550 に答える