0

私はClips Controller場所を持っています:

def set_clip
  @clip = Clip.find(params[:id])
end

マイクリップには、:titleユーザーが作成時に設定できる属性があります。

URLでクリップが次のように表示されるようにしようとしています:

http://localhost:3000/clip/1/:title

さらに、私は gsub を関与させる必要があるので、これらの醜い%20はすべてのスペースに表示されません

誰でもこれについて教えてもらえますか?

FriendlyID なしで解決策を探しています

4

1 に答える 1

3

/1/ がレコードの ID であると仮定すると、URL に :title を追加するのは冗長です。

同じ結果を達成する同様の (そして簡単な) 方法はto_param、モデルで定義することです。

def to_param
    "#{id}-{title}"
end

これにより、「clip/1-title」の形式で URL が得られます。これは、アクティブ レコードfind(param[:id])メソッドで正常に機能します。

さらに、より安全なパラメーター文字列は、タイトルを次のようにパラメーター化することです。

"#{id}-{title.parameterize}"
于 2013-08-30T16:11:30.483 に答える