0
레일 프레임 워크를 처음 사용하여이 문제를 해결하는 데 오랜 시간이 걸렸습니다 ... 특정 사용자가 속한 팀 이름을 표시하려고합니다 (표시 작업 (사용자 세부 정보)는 작동하지만 인덱스는 작동하지 않음). 행동 (모든 사용자)레일 테이블 관계 : 관련 값을 출력하는 방법?
내가 만든 테이블 :
teams users
----------- ---------------
id (integer) id(integer)
name (string) fname(string)
lname(string)
team_id(integer)
나는 다음과 같은 클래스가 있습니다
다음class Team < ActiveRecord::Base class User < ActiveRecord::Base
attr_accessible :name, :user_id attr_accessible :fname, :lname, :team_id
has_many :users belongs_to :team
나는 다음과 같은 사용자 컨트롤러가 :
나는 인덱스보기에서 동일한 코드를 사용하려고하면class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
def index
@users = User.paginate(page: params[:page], per_page: 15)
end
은 사용자의 팀 이름 그러나 ... 완벽하게 잘 작동하는 ...
Team: <%= @user.team[:name] %>
입니다 표시하는 코드를 .. 그리고 이렇게하면 "정의되지 않은 메서드 인"team for nil : NilClass "오류가 발생합니다.
<table class="table table-striped">
<% @users.each do |user| %>
<tr>
<td>
<%= "#{user.fname} #{user.lname}" %>
</td>
<td>
Team: <%= @user.team[:name] %>
</td>
</tr>
<% end %>
</table>
내가 뭘 잘못 했니? 도와 줘서 고마워, 정말 고마워!
, 문제가 당신이 블록 자체에 걸하지
쉬운 버그를 작성해야 -는 것을의 인덱스 액션에서 결코'@ users'에 값을 할당하지 않을 것입니다. 그리고 블록에서 여러분이 사용하는 파라미터는'user'이지'@ users'가 아닙니다 – bblack
정말 고마워요. – coffeelovesmilk