부분적으로 조인 테이블에서 열에 액세스하려고합니다. 'normal'보기 (예 : fakeposts # index)에서이 항목에 액세스하면 부분적으로 동일한 작업을 수행하려는 경우 작동하지 않습니다.레일 : 부분에서 조인 테이블의 열을 액세스 할 수 없습니다.
예 :
가 나는 사용자와 fakeposts 테이블을 가지고있다. 각 사용자에 대해 내가 위해 특정 (무작위)에서 fakeposts을 표시 할 - 즉 randomized_time 열을 기반으로 - 조인 테이블에 저장되는 :
randomized_posts 테이블 :
user_id | fakepost_id | randomized_time
내 모델은 다음과 같이 : 내 fakepost_controller.rb에서
#user.rb
has_many :randomized_fakeposts
#fakepost.rb
has_many :randomized_fakeposts
# randomized_fakepost.rb
belongs_to :fakepost
belongs_to :user
내가 CURRENT_USER에 대한 fakeposts을 얻을 나의 선택에 열 "randomized_time"를 추가 할 :
이 작동하지 않는
<% @fakeposts.each do |post| %>
<%= post.randomized_time %>
<% end %>
index.html.erb :
내 fakepost_controller.rb
def index @fakeposts = Fakepost.joins(:randomized_fakeposts).where(randomized_fakeposts: {user_id: current_user.id}).select("fakeposts.*, randomized_fakeposts.randomized_time") end
이
노력하고 있습니다 index.html.erb 내 부분#index.html.erb
<% @fakeposts.each do |post| %>
<%= render :partial => "layouts/individual-post", :locals => {:post => post} %>
<% end %>
#layouts/_individual-post.html.erb
<%= post.randomized_time %>
오류 메시지
=> undefined method `randomized_time' for #<Fakepost:0x007f7752eeab58>
그러나 <퍼센트 = post.created_at %의 같은 내 부분에서 잘 작동> 그래서 내가 호출 방법은 올바른 부분 내 생각?
'Fakepost.joins (randomized_fakeposts)'는 Fakepost.joins (: randomized_fakeposts) 여야합니다. –
아, 고마워. :) 오타가 수정되었습니다. (내 코드가 정확하기 때문에) . – OhDaeSu
레일즈 콘솔에서 똑같은 방법을 사용할 수 있습니까? – angkiki