저는 Rails를 처음 접했고 멋진 gem과 API를 사용하고 있습니다. 나는이 커뮤니티가 질문과 답변의 내용을 소중히 여기거나 특정 방식으로 구성 될 것으로 예상된다는 것을 알고 있습니다. 내 질문에 대한 짧은 방법과 긴 방법이 제공됩니다. 여기에서 선호하는 것이 무엇인지 알려주세요! 그래도 진짜 질문입니다!
짧은 버전
레일스 앱에 사용자 이름 속성이있는 users_controller 및 User 개체가 있습니다. 사용자 이름을 기반으로 동적으로 이러한 사용자에 대한 전역 변수를 생성하려면 어떻게해야합니까? 예 : 내 사용자 (id = 1, first_name = "Rob", 사용자 이름 = "rocky")가 @rocky로 호출되기를 원합니다. 그래서 터미널에서 저를 위해 일하는 아래의 첫 번째 코드 줄을 기반으로하는 내 Users_controller에서 아래에 무엇이 될까요?
@rocky = User.find_by_username("rocky")
WHATGOESHERE = User.find_by_username(params[:username]}
또는 params [: username] 대신 어떤 모양이나 형태로 이것을 사용해야합니까?
@"#{user.username}"
아래는 내 질문의 더 긴 버전입니다. 더 자세하고 내가 문제에 어떻게 접근했는지 더 자세히 따릅니다. 두 번째로 쓴 첫 번째는 더 간결하지만 항상 사람들이 원하는 것은 아닙니다 ...이 사이트에서 선호하는 것이 무엇인지 알려주세요. 감사!!
긴 버전
몇 가지에 대한 명확성이 필요합니다. "has_friendship"이라는 보석을 사용하여 사용자 간의 우정을 쌓고 있습니다 (gem- https://github.com/sungwoncho/has_friendship 링크 ).
첫째, 이것은 사용자 생성부터 시작하여 우정을 요청하는 방법에 대한 문서 예제입니다.
@mac = User.create(name: "Mac")
@dee = User.create(name: "Dee")
# @mac sends a friend request to @dee
@mac.friend_request(@dee)
이것이 내가 처음 혼란 스러워진 곳입니다. 내 사용자에게는 "이름"필드가 없습니다. 하지만 괜찮습니다. 내 사용자가 "username"속성 뒤에 서로 상호 작용할 것이기 때문에 생성 된 사용자 전역 변수를 할당하면된다는 것을 알아 냈습니다. 첫 번째 질문입니다. 각 사용자에게 동적 변수 이름을 어떻게 할당합니까? 문서에서 "Mac"및 "Dee"라는 이름으로 하드 코딩되어 있습니다. 객체를 생성 할 때이 전역 변수를 만들어야합니다. 그래서 제 계획은 컨트롤러에서이 작업을 수행하는 것입니다. 여기서는 이미 users # show에서 @users와 @user를 정의하고 있습니다.
@users = User.all
@user = User.includes(:wallet).find_by_id(params[:id])
그래서 내 생각 과정은 방정식의 왼쪽이 당신이 명명하는 이름이어야하고 오른쪽이 그 이름이 말하는 것입니다. 그래서 오른쪽에는
User.find_by_username(params[:username])
터미널에서 괄호 안의 내용을 따옴표 안의 실제 사용자 이름으로 바꾸면 해당 사용자의 정보가 표시됩니다. 그래서 왼쪽을 어떻게 쓰나요? 왼쪽이 다음과 같다고 생각합니다.
@"#{params[:username]}"
그래서 전체적으로 현재 사용자 이름 속성을 기반으로 사용자에게 전역 변수를 할당하기 위해 users_controller에 다음이 있습니다.
@"#{params[:username]}" = User.find_by_username(params[:username])
이, 특히 왼쪽은 나에게 잘 보이지 않습니다. 그래서 저는 구글을 둘러 보았습니다. 그리고이 작업을 수행하는 올바른 방법 인 것처럼 보이는 유일한 다른 것은 "instance_variable_set"을 사용하는 것입니다.하지만 제가 본 모든 것이 제 상황에 맞지 않습니다. .. (평소처럼 .. 하)
좋아, 내가 당신의 질문에서 알게 된 것은 friend_request
두 사용자를 연결 하는 방법을 사용하려는 것 입니다.
이를 위해 변수에 할당 할 필요가 없습니다. 다음과 같이 직접 할 수 있습니다. 두 명의 사용자가 있다고 가정합니다.
id = 1 first_name = 'Rocky'사용자 이름 = 'rocky'
id = 2 first_name = 'Nimish'사용자 이름 = 'nimish'
User.find_by(username: 'rocky').friend_request(User.find_by(username: 'nimish'))
또는
User.find_by_username('rocky').friend_request(User.find_by_username( 'nimish'))
당신이 인스턴스 변수에 할당하려는 경우 또한, 다음 당신은 단순히에 할당 할 수 있습니다 사용자 이름 값에 해당하는 인스턴스 변수를 만들 필요가 없습니다 @user
및 @requested_user
다음과
@user.friend_request(@requested_user)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다