레일스를 처음 사용하고 첫 번째 벽을 칠했습니다. 지금까지는 Google에서 대답을 사용할 수있었습니다. 솔직하게 말하면 문제의 일부는 문제를 제대로 설명 할 수 없다는 것입니다.보기에 홀수 서식이있는 모든 열을 표시하는 레일스 선택 쿼리
show.html.erb 파일의 내 레일 선택 쿼리는 (1) 중복 레코드를 표시하고 (2) 일반 텍스트 대신 홀수 서식으로 데이터를 표시합니다. 완전히 설명하기 위해 아래의 모든 코드를 붙여 넣습니다.
class UsersController < ApplicationController
def index
@users = User.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @users }
end
end
def show
@user = User.find(params[:id])
@works = @user.works.all
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @user }
end
end
end
:
여기class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me, :first_name, :last_name, :works_attributes
# attr_accessible :title, :body
validates_presence_of :first_name, :last_name
validates_uniqueness_of :first_name, :last_name, :email, :case_sensitive => false
has_many :works
accepts_nested_attributes_for :works
사용자 여기
class Work < ActiveRecord::Base
attr_accessible :description, :work_name, :users_id
belongs_to :user
end
와 belongs_to 내 작품의 모델은, 사용자의 컨트롤러입니다 작동합니다
나는 has_many 사용자 모델을 내 사용자 show.html.erb보기에서 특정 사용자에게 속한 작품을 반복하고 싶습니다. 필자는 Rails 규칙을 따르기 위해 user_id 필드와 외래 키 관계를 설정했습니다. 루프가 사용자에게 속한 작업을 찾으면 work_name 필드를 표시하려고합니다.
<% if @user.works.any? %>
<% @user.works.each do |user| %>
<%= @user.works(:select => 'work_name') %>
<% end %>
<% end %>
그러나,이 볼 때 나는 웹 사이트에보고있어 출력/사용자/1/:
귀하의 .each 루프는 사용자 만 작업 객체를 통해 반복되지[#<Work id: 1, work_name: "WorkTest1", description: "I am the co-founder and CEO of WorkTest1, a website t...", created_at: "2013-02-12 00:33:19", updated_at: "2013-02-12 00:33:19", user_id: 1>, #<Work id: 2, work_name: "WorkTest2", description: "test", created_at: "2013-02-12 00:33:19", updated_at: "2013-02-12 00:33:19", user_id: 1>] [#<Work id: 1, work_name: "WorkTest1", description: "I am the co-founder and CEO of WorkTest1, a website t...", created_at: "2013-02-12 00:33:19", updated_at: "2013-02-12 00:33:19", user_id: 1>, #<Work id: 2, work_name: "WorkTest2", description: "test", created_at: "2013-02-12 00:33:19", updated_at: "2013-02-12 00:33:19", user_id: 1>]
완벽하게 작동했습니다. 정말 고맙습니다. 나는이 100 %를 이해할 수 있도록 질문을 따른다. 이 단순화 된 규칙은보기의 If 문에서도 올바르게 작동합니다. 나는 <% if @ user.works.any? %> ~ <% if @ works.any? %>와 데이터 출력이 같아 보입니다. – winston
그래, 시나리오에서'@ user.works'와'@ works'는 같은 것입니다. –