제가 시나리오를 설명해 드리겠습니다 .. !! 나는 인증에 devise를 사용했습니다. 데이터베이스의 Devise 테이블의 이름은 "user"입니다. 이제는 사용자 ID를 저장하는 "book"이라는 테이블이 있습니다.다른 테이블에서 값을 가져 오는 방법은 무엇입니까?
class CreateBooks < ActiveRecord::Migration
def change
create_table :books do |t|
t.integer "user_id", :limit =>5
t.string "book_name", :limit => 50
t.integer "edition", :limit => 5
t.string "author", :limit => 30
t.string "branch", :limit => 30
t.string "publisher", :limit => 50
t.integer "year", :limit => 10
t.text "details"
t.timestamps
end
add_index :books, "user_id"
end
end
이 책을이 사용자가 사용할 수 있도록 표시 할 수 없도록 책 표에 사용자 ID를 저장합니다. 그러나 책 페이지 나던 메이크업 감각에만 사용자 ID를 보여주는 그래서 내가 s_user라는 이름으로 다른 테이블, 아니 그/그녀의 이름, 주소, 전화 번호와 같은 사용자의 전체 정보를 저장
class CreateSUsers < ActiveRecord::Migration
def change
create_table :s_users do |t|
t.integer "user_id", :limit => 5
t.string "fullname", :limit => 25
t.string "email", :default => "", :null => false
t.string "hashed_password", :limit => 40
t.string "salt", :limit => 40
t.string "address",:limit => 25
t.text "details"
t.timestamps
end
add_index :s_users, "user_id"
end
end
했다. 책과 사용자간에 만든 관계는 s_user에 대해 사용자에게 많고 일대일 관계입니다. 그래서 s_user 테이블에 저장된 사용자의 정보를 표시하는 방법을 얻지 못하고 있습니다. 내가 여기 쓰는 사람 무슨 짓을했는지 : 을 컨트롤러
@books = Book.all
에서
<tr>
<th>S.No</th>
<th>Book Name</th>
<th>Year </th>
<th>Owner id</th>
<th>Owner Details</th>
</tr>
</thead>
<tbody>
<% @books.each do |b| %>
<tr>
<td><%= b.id%></td>
<td><%= b.book_name%></td>
<td><%= b.year%></td>
<td><%= b.user_id%></td>
</tr>
<%end%>
지금 소유자 정보에서 i는 사용자의 세부 사항을 표시 할 전망이다. 나는 그것을 표시하는 방법을 모르겠다? 당신이 관계
belongs_to
예를 들면
has_many
줄 경우
를 들어, 책을 읽고 세부 사항을 얻을 수 있습니다 자동으로
온다. 실제로 사용자 (상점 키퍼) 로그인이있을 때 사용자의 ID는 새 책을 추가하는 동안 자동으로 책 테이블에 저장됩니다 (상점 주인에게 그의 책 레코드에 추가, 삭제, 편집 권한을 제공했습니다). 내 질문은이 user_id를 통해 사용자 세부 정보 (예 : SUser 테이블의 데이터)를 검색 할 수있는 방법입니다.이 테이블은 devise에서 만든 책 표 n에 저장됩니다. –
나는 또한 장인의 테이블이 다르다는 것과 장사꾼의 테이블이 다르다는 것을 상기시키고 싶다. 또한이 두 테이블 사이에는 일대일 관계가 있습니다. 그리고 테이블과 사용자 테이블 사이의 많은 관계 (devise). –
나는 이것을 이렇게 생각했다. 'v = Book.user_id' 'a = SUser.find_by_user_id (v)' 'b = a.address' –