私は、表示されたメソッドがレールで呼び出されたときに表示されるロビーにリンクするランダム化された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. WebDriverWaitでランダムを使用するにはどうすればよいですか?
- 5. ムービークリップをランダムに呼び出すにはどうすればよいですか?
- 6. URLをwww.example.com/profile.php?id=xyzからwww.example.com/xyzに変換するにはどうすればよいですか?
- 7. URLにidの値を使用するにはどうすればよいですか?
- 8. C#のコントローラメソッドのURLからIDを抽出するにはどうすればよいですか?
- 9. ランダムに実行するようにiMacrosを設定するにはどうすればよいですか?
- 10. RubyのURLからform_tagにIDを渡すにはどうすればよいですか?
- 11. 投稿IDをURLから別のページに渡すにはどうすればよいですか?
- 12. URLから動画IDを取得するにはどうすればよいですか? (DailyMotionは)
- 13. URLからfacebookのアルバムIDを取得するにはどうすればよいですか?
- 14. URLから動画IDを取得するにはどうすればよいですか? (Vimeoの)
- 15. EmberルートのURLからIDを取得するにはどうすればよいですか?
- 16. Request $ requestでURLからIDを取得するにはどうすればよいですか?ビュー上(Laravel 5.3)
- 17. Angular 2 ActivatedRouteでURL内のIDを変更するにはどうすればよいですか?
- 18. URLルーティング:IDを文字列にするにはどうすればよいですか?
- 19. URLにJquery UI TabのIDを含めるにはどうすればよいですか?
- 20. ブラウザウィンドウのIDを設定するにはどうすればよいですか?
- 21. URLにパラメータを追加するにはどうすればよいですか?
- 22. プライベートURLをパブリックにするにはどうすればよいですか?
- 23. URLをイメージに変換するにはどうすればよいですか?
- 24. アラートにURLを追加するにはどうすればよいですか?
- 25. URLにphpを追加するにはどうすればよいですか?
- 26. URLにアンカータグを追加するにはどうすればよいですか?
- 27. URLをフラッシュメッセージに挿入するにはどうすればよいですか?
- 28. リダイレクトURLをローカルホストにリンクするにはどうすればよいですか?
- 29. URLの 'id'部分をview_callableに渡すにはどうすればよいですか?
- 30. jquery:contains()でIDを使用するにはどうすればよいですか?
私はこれについてどうやって行くのか考えています。私は非常にレールを知っていた –