2016-07-26 4 views
1

어떻게 형태의 배열에서 데이터를 얻을 수 있습니다 : 또한레일에서 루비의 sqlite3 배열에서 데이터를 추출하는 방법?

<%= User.select(User.all.select { |u| u.id == 1 }) %> 

, 모든 이상 선택한 필드를 추출하는 더 좋은 방법이 :

[#<User id: 1, name: "John", surname: "Smith", dob: "2016-07-26", location: "Liverpool", created_at: "2016-07-26 08:50:01", updated_at: "2016-07-26 08:50:01">] 

이 코드를 사용하여 sqlite3를 데이터베이스에서 생성? 내가 시도한 것은 참조와 같은 긴 임의의 숫자를 반환합니다.

그리고 마지막으로는, 내가 어떻게 만들 수 있습니다

u.id == x (where x is any number) 

건배 :

u.id == 1 

는 다음과 같이 실시간으로 해당 사용자에게 주어진 모든 ID가 될!

+0

을 당신은'pluck'을 사용할 수 있습니다. – Kkulikovskis

+0

<% = User.find (1) .name %>을 시도했지만 작동하지만, 등록한 사용자의 ID를 전달하여 자동으로이 기능을 수행하기를 원합니다. 이름을 화면에 표시합니다. –

+0

글쎄, 등록 후에 바로 이름을 보여주고 싶다면'User.last.name'을 사용할 수 있습니다 (두 사람이 동시에 등록하는 경우에는 안전하지 않지만). 또 다른 방법은 등록 된 사용자를 인스턴스 변수로 전달하는 것입니다. 물론'@ user.save' 같은 것을 사용하는 컨트롤러 메소드가 있습니다. 그럼 그냥보기에서 '@ user.name' 표시 – Kkulikovskis

답변

1

내가 뭔가를 누락하는 경우 나도 몰라하지만 난 당신이 원하는 생각이 하나 find :

@user = User.find(x) # x = given id 

또는 where

@user = User.where(id: x) 
(사용자 집합이 아니라 하나를 반환)

그리고보기에이 같은 사용자가 사용할 수 있습니다 : 데이터베이스에서 특정 필드를 선택

<%= @user.name %> 
+0

나는 내 users_controller에 다음과 같은 코드를 가지고있다 : def show @user = User.find (params [: id]) end 나는 경고를 받기 때문에 뷰 파일에서 find 또는 find_by가 뷰 내부에서 사용되어서는 안됩니다. 그러나 User.show를 작성할 때 "No Method Error"오류가 발생하며 그 이유를 알 수 없습니다. –

+0

무엇? 나는 그 질문을 편집했다. 그것을 사용하는 방법을 참조하십시오. 컨트롤러에로드하면보기에서 다시로드 할 필요가 없습니다. – siegy22

+0

사용자가 내 앱에 등록 할 때 실시간으로 User.find (1) .name과 같이 id를 사용하여 제공 한 실제 이름을 어떻게 되돌릴 수 있습니까?하지만 ID는 생성되지 않습니다. 그 시간에. 나는 당신의 대답을 '똑딱 거리는 사람'으로 받아들이지 만 방금 한 질문에 나를 도와주세요. –

관련 문제