私は、表示されたメソッドがレールで呼び出されたときに表示されるロビーにリンクするランダム化されたIDを作成する方法を探しています。今のところ、URLは次のようになります:http://localhost:3000/lobby/2。私はランダムに生成されたIDとその2を置き換えるために探していますので、あなたはそれらのロビーに参加したい場合は、友人にそのリンクを送信することができます。何か案は?URLのidをランダムにするにはどうすればよいですか?
答えて
Gavinが言ったように、もう少し情報を共有する必要があります。あなたがすでに試したことを知ることは、進歩の方法に関するより多くの情報を提供するのに役立ちます。
これはあなたに正しい方向を送ることを望みます。あなたはたSecureRandomを使用することができ、ランダムなIDを生成するために: http://ruby-doc.org/stdlib-1.9.3/libdoc/securerandom/rdoc/SecureRandom.html
を私はあなたがlobbies
テーブルに別の列を追加することをおすすめします、そして、それはユニークなものにしたい:
add_column :lobbies, :secure_token, :string, null: false
add_index :lobbies, :secure_token, unique: true
、あなたのLobby
モデルで、いつでも作成されると、独自のトークンを生成できます。簡単にするために、あなたはこれらの線に沿って何かを行うことができます:
class Lobby < ActiveRecord::Base
before_create :generate_unique_secure_token
# Rest of the model's code
private
def generate_unique_secure_token
begin
self.secure_token = SecureRandom.urlsafe_base64
end while self.class.exists?(secure_token: secure_token)
end
end
これはsecure_token
Lobby
が作成されるたびに生成されます。今コントローラーでid
の代わりにsecure_token
を使用してLobby
を見つけることができます。たとえば、
class LobbiesController < ApplicationController
def show
@lobby = Lobby.find_by(secure_token: params[:id])
end
end
頭を上にして、 'find_by_x'は反パターンと見なされます。好ましい解決策は 'find_by(secure_token:
良い点、Kieran! –
'SecureRandom :: uuid'はこのようなことに最適です。システムに十分なエントロピーがあることを確認してください! –
私はあなたにこれらのことを学ぶことは素晴らしいことですから、答えを全部あげませんが、質問があれば私に相談してください!
あなたが開始すべき場所です:URLSafe Base 64
Here's a Railscasts episodeあなたはそこから展開することができるかどうか、あなたが望むものに類似のソフトだと! Railsが初めての方はRailscastsをチェックしてください。すべてのプロエピソードはYouTubeで無料で入手できます!
ありがとう!私は自分でそれを学ぶことを好む、私はちょうど始まるべきか分からなかった –
私はちょうどポストを更新した。あなたができることを見てください!何かご不明な点がありましたら、StackOverflowからチャットを開始してください。 –
- 1. URL IDを変更するにはどうすればよいですか?
- 2. ランダムにオブジェクトキーを選択するにはどうすればよいですか?
- 3. ムービークリップをランダムに呼び出すにはどうすればよいですか?
- 4. URLをwww.example.com/profile.php?id=xyzからwww.example.com/xyzに変換するにはどうすればよいですか?
- 5. 投稿IDをURLから別のページに渡すにはどうすればよいですか?
- 6. RubyのURLからform_tagにIDを渡すにはどうすればよいですか?
- 7. URLから動画IDを取得するにはどうすればよいですか? (DailyMotionは)
- 8. URLからfacebookのアルバムIDを取得するにはどうすればよいですか?
- 9. URLから動画IDを取得するにはどうすればよいですか? (Vimeoの)
- 10. EmberルートのURLからIDを取得するにはどうすればよいですか?
- 11. URLルーティング:IDを文字列にするにはどうすればよいですか?
- 12. URLにJquery UI TabのIDを含めるにはどうすればよいですか?
- 13. URLの 'id'部分をview_callableに渡すにはどうすればよいですか?
- 14. ブラウザウィンドウのIDを設定するにはどうすればよいですか?
- 15. リダイレクトURLをローカルホストにリンクするにはどうすればよいですか?
- 16. URLをフラッシュメッセージに挿入するにはどうすればよいですか?
- 17. URLにパラメータを追加するにはどうすればよいですか?
- 18. URLにphpを追加するにはどうすればよいですか?
- 19. URLにアンカータグを追加するにはどうすればよいですか?
- 20. アラートにURLを追加するにはどうすればよいですか?
- 21. URLをイメージに変換するにはどうすればよいですか?
- 22. jquery:contains()でIDを使用するにはどうすればよいですか?
- 23. nginxでカスタムURLにリダイレクトするにはどうすればよいですか?
- 24. jqueryを使用してURLにidを渡すにはどうすればよいですか?
- 25. メディアファイルのURLを変更するにはどうすればよいですか?
- 26. ツイートのURLを取得するにはどうすればよいですか?
- 27. ランダムなレベルを読み込むにはどうすればよいですか?
- 28. URLをカスタムスキームで短縮するにはどうすればよいですか?
- 29. jsでURLを短くするにはどうすればよいですか?
- 30. Yii2でURLをカスタマイズするにはどうすればよいですか?
私はこれについてどうやって行くのか考えています。私は非常にレールを知っていた –