2014-09-19 4 views
0

날짜를 채 웁니다 :방법보기 코드에서 각 루프

<% @hotels.each do |h| %> 
<%= h.hotel_Name%><% @hotelName=h.hotel_Name%> 
<%= image_tag h.hotelImage_url,:size=>'160x120'%> 
<%= image_tag('1407945135.png',:size=>'20x20',:alt=>'Logo')%> 
<%= h.hotel_location%> 
<%= link_to("ViewMenu",{:controller=>'menus',:hotel_id=>h.id}, class:'btn-orange')%> 
<% end%> 

컨트롤러에서 :

@hotels= Hotel.where('hotel_location LIKE ?',"%#{params[:search]}%") 

**@offers=Offer.all** 

내가 레일에 새로운 오전. 사용자가 특정 도시에서 사용할 수있는 모든 호텔을 볼 수있는 페이지가 있습니다. 데이터베이스에 두 개의 테이블이 있습니다. 첫 번째 테이블 이름은 hotels이며 호텔의 모든 정보를 사용할 수 있으며 다른 하나는 offershotel_id을 포함한 모든 정보를 사용할 수 있습니다. 그래서 idhotels 테이블에서 hotel_id 테이블과 offers 테이블에서 모든 블록을 제공하고 싶습니다. 어떻게해야합니까?

다른 문제가 있습니다. 제공하는 테이블에 startDate 및 endDate 필드가 있습니다. 오늘 날짜가 두 날짜 사이 또는 동등한 경우 사용자에게 오퍼를보고 싶습니다.

답변

0

변경 쿼리를 수행 할 수 있습니다

다음
@hotels= Hotel.includes(:offers).where('hotel_location LIKE ?',"%#{params[:search]}%") 

includes 열망로드 관련 이벤트 하나의 검색어로 호텔을 검색 할 수 있습니다. More on includes here.

확실히 당신은 당신의 응용 프로그램/모델/hotel.rb이이 있는지 확인 :

has_many :offers 

이제보기. 간단히 쿠폰을 호출 할 수 있습니다.

<% @hotels.each do |h| %> 
<%= h.hotel_Name%><% @hotelName=h.hotel_Name%> 
<%= image_tag h.hotelImage_url,:size=>'160x120'%> 
<%= image_tag('1407945135.png',:size=>'20x20',:alt=>'Logo')%> 
<%= h.hotel_location%> 
<% h.offers.each do |offer| %> 
    <%= offer.coupon_code %> 
<% end %> 
<%= link_to("ViewMenu",{:controller=>'menus',:hotel_id=>h.id}, class:'btn-orange')%> 
<% end%> 
+0

또 다른 문제는 사용자가 볼 수있는 데이터베이스의 모든 레코드를 페이지에서 새로 고치면 특정 장소의 호텔을보고 싶다는 것입니다. 같은 페이지를 새로 고치기 전에 작동하고 있습니다. – John

+0

검색어에 대한 확신이 있으십니까? 'where ('hotel_location LIKE?', "% # {params [: search]} %")'어디서 쿼리했는지 확신 할 수 있습니다. 한 번만보세요. 아마도 params [: search]를 사용할 수 없습니까? – Surya

+0

예, 페이지가 새로 고쳐진 후에 params [: search]는 아무 것도 얻지 못합니다 ... 어떻게 해결합니까? – John

0

쓰기 컨트롤러에서이 쿼리는

@hotels= Hotel.where('hotel_location LIKE ?',"%#{params[:search]}%").includes(:offers) 

그리고보기

이에 @hotels에 대한

@hotels.each do |hotel| 
    <%= hotel.hotel_Name%><% @hotelName=hotel.hotel_Name%> 
    <%= image_tag hotel.hotelImage_url,:size=>'160x120'%> 
    <%= image_tag('1407945135.png',:size=>'20x20',:alt=>'Logo')%> 
    <%= hotel.hotel_location%> 
    <% hotel.offers.each do |offer| %> 
    <%= offer.try(:name) %> 
    <%= offer.try(:coupon_code) %> 
    # any offer field you want to show, try is used to avoid errors if offer is nil 
    <% end %> 
<% end %> 
+0

친구, ERB 태그를 추가하는 것을 잊었습니다. – Surya

+0

네, 고쳐졌습니다 – RSB

+0

또 다른 문제가 있습니다.'offers' 테이블에 startDate와 endDate 필드가 있습니다. 오늘 날짜가 두 날짜 사이에 있으면 사용자에게 오퍼를보고 싶습니다. – John