그래서 난 레일에 표시된 메서드를 호출 할 때 표시됩니다 로비에 연결됩니다 무작위 ID를 만드는 방법을 찾고 있어요. 현재 URL은 http://localhost:3000/lobby/2과 같습니다. 그 2를 무작위로 생성 된 ID로 대체하려고합니다. 그래서 당신이 로비에 가입하기를 원한다면 친구에게 그 링크를 보낼 수 있습니다. 어떤 아이디어?URL의 ID를 어떻게 임의로 만들 수 있습니까?
답변
Gavin이 말한대로 좀 더 많은 정보를 공유해야합니다. 이미 시도한 것을 알고 있으면 진행 방법에 대한 정보를 더 많이/더 잘 얻을 수 있습니다.
나는 이것이 당신에게 올바른 방향을 알려주기를 바랍니다. 이 http://ruby-doc.org/stdlib-1.9.3/libdoc/securerandom/rdoc/SecureRandom.html
나는 당신이 lobbies
테이블에 다른 열을 추가 할 것을 권장하고 특별하게 만드는 것 : 당신의 Lobby
모델마다에,
add_column :lobbies, :secure_token, :string, null: false
add_index :lobbies, :secure_token, unique: true
이제 임의 ID를 생성하기 위해 당신은 SecureRandom의을 사용할 수 있습니다 그것이 생성되면 고유 한 토큰을 생성 할 수 있습니다. 단순화하기 위해, 당신은이 라인을 따라 뭔가를 할 수 있습니다
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 :
좋은 지적, 키 에런! –
'SecureRandom :: uuid'는 이런 종류의 일에 완벽합니다. 시스템에 충분한 엔트로피가 있는지 확인하십시오! –
이런 것들을 배우는 것이 좋기 때문에 나는 전체 답을주지는 않겠지 만, 질문이 있으시면 언제든지 물어보십시오! 당신이 거기에서 확장 할 수 있다면 당신이 원하는 것과 유사한 소프트의 URLSafe Base 64
Here's a Railscasts episode은 다음을 참조하십시오 시작해야하는 위치
이입니다! 레일스를 처음 사용하는 경우 Railscasts를 확인하십시오. 모든 프로 에피소드는 YouTube에서 무료로 사용할 수 있습니다!
고마워! 나는 그것을 배우기를 더 좋아한다, 나는 어디에서 시작 해야할지 몰랐다. –
나는 방금 포스트를 업데이트했다. 당신이 할 수있는 것을보십시오! 질문이 있으시면 StackOverflow –
- 1. 어떻게 목록의 인쇄 요소를 임의로 파이썬으로 만들 수 있습니까?
- 2. URL의 동적 ID를 변경하십시오.
- 3. 어떻게 만들 수 있습니까?
- 4. 어떻게 URL의 해시를 얻을 수 있습니까?
- 5. 어떻게 PHP로 URL의 일부를 얻을 수 있습니까?
- 6. URL의 의미 데이터는 어떻게 볼 수 있습니까?
- 7. .htaccess를 어떻게 만들 수 있습니까? :) ...
- 8. precompiledapp.config - 어떻게 만들 수 있습니까?
- 9. 번호를 어떻게 만들 수 있습니까?
- 10. NodeList는 어떻게 만들 수 있습니까?
- 11. 어떻게 간격을 만들 수 있습니까?
- 12. 어떻게 매트릭스를 만들 수 있습니까?
- 13. 어떻게 목록을 만들 수 있습니까?
- 14. 메뉴를 어떻게 만들 수 있습니까?
- 15. 어떻게 위시리스트를 만들 수 있습니까?
- 16. UITabbar를 어떻게 만들 수 있습니까?
- 17. 어떻게 트리를 만들 수 있습니까?
- 18. 어떻게 제한을 만들 수 있습니까?
- 19. 어떻게 애니메이션을 만들 수 있습니까?
- 20. Isapi ReWrite : URL의 일부를 어떻게 일치시킬 수 있습니까?
- 21. URL의 HTML 요소 ID를 무시합니다.
- 22. CodeIgniter에서 어떻게 '수동으로'세션 객체를 만들 수 있습니까?
- 23. 이 모델 쿼리를 어떻게 만들 수 있습니까?
- 24. 임의로 내 세션이 null 일 수 있습니까?
- 25. 어떻게 PHP로 API를 만들 수 있습니까?
- 26. 어떻게 리피터에서 이미지 ID를 얻을 수 있습니까?
- 27. 어떻게 트위터 팔로워 ID를 얻을 수 있습니까?
- 28. CSS ID를 어떻게 재정의 할 수 있습니까?
- 29. Qt 어떻게 파티션 ID를 얻을 수 있습니까?
- 30. htaccess로 만들 친화적 인 URL의
이 문제를 해결하는 방법을 알고 있습니다. 나는 아주 잘 알고있다. –