探しているものです。
ユーザーが定義したページURLを実装するのは難しくありません。 あなたがlink
属性の入力を追加user_id
とpage#new
でlink
class User < ActiveRecord::Base
has_many :pages
class Page < ActiveRecord::Base
belongs_to :user
has_friendly_id :link # link is name of the column whose value will be replaced by slugged value
とテーブルpages
を作成します。
また、titleに何か他のものを設定することもできます:use_slug => trueオプション。このようにFriendlyIDはタイトルを取り、それを変更して、それが制限された文字を持たないようにします。それはそれ自身のテーブルを使用してスラグを保存します。パフォーマンスを向上させるにはを使用してください。
ユーザーに、彼らはカスタムリンクを設定するためにwan'tかどうかの選択肢を与えるために
を更新し、あなたがこれを行うことができます:
- セットナメクジなし
link
フィールド上friendly_id ..
- メイク仮想属性
permalink
を入力してフォームに表示することができます。
- before_filterで、
permalink
が設定されているかどうかを確認します。
- の場合は、
link
フィールドに書き込みます。
- そうでなければ、
link
フィールドにタイトルを書いてください。
FriendlyIDは、babosa
gemを使用してスラッグを生成します。私はfriendly_url宝石を使用していないし、私の方法が効率的であるかどうかわからないのです
protected
def generate_link
#you might need to use .nil? instead
self.link = self.permalink.empty? ? make_slug(self.title) : make_slug(self.permalink)
end
def make_slug(value)
value.to_slug.normalize.to_s #you could as well use ph6py's way
end
この他のポストを見てください: [http://stackoverflow.com/questions/4995759/creating-seo-friendly-urls-in-rails-3][1] 願って助けて、 [1]:http://stackoverflow.com/questions/4995759/creating-seo-friendly-urls-in-rails-3 –