列出属于另一个型号的所有型号在导轨上

问题描述:

在“服务”模型的展示视图中,我希望能够显示与此服务关联的所有“评论”。需要知道要在“服务”展示视图以及“服务”/“评论”控制器中放置什么内容。列出属于另一个型号的所有型号在导轨上

服务模式:

class Service < ActiveRecord::Base 
    has_many :reviews 
end 

审查模式:

class Review < ActiveRecord::Base 
    has_one :service 
    belongs_to :service 
end 

服务节目的看法:

<table> 
<thead> 
    <tr> 
     <th>Name</th> 
     <th>Date</th> 
     <th>Review</th> 
     <th colspan="3"></th> 
    </tr> 
    </thead> 

    <tbody> 
    <% @reviews.each do |review| %> 
     <tr> 
     <td><%= review.name %></td> 
     <td><%= review.date %></td> 
     <td><%= review.review %></td> 
     <td><%= link_to 'Show', review %></td> 
     <td><%= link_to 'Edit', edit_review_path(review) %></td> 
     <td><%= link_to 'Destroy', review, method: :delete, data: { confirm: 'Are you sure?' } %></td> 
     </tr> 
    <% end %> 
    </tbody> 
</table> 

审查模式:

create_table "reviews", force: true do |t| 
    t.string "name" 
    t.string "date" 
    t.text  "review" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
    t.integer "service_id" 
    end 

审查控制器:

def index 
    @reviews = Review.all 
    respond_with(@reviews) 
    end 

    def show 
    respond_with(@review) 
    end 

    def new 
    @review = Review.new 
    respond_with(@review) 
    end 

    def edit 
    end 

    def create 
    @review = Review.new(review_params) 
    @review.save 
    respond_with(@review) 
    end 

服务控制器:

def new 
    @service = Service.new 
    end 

    # GET /services/1/edit 
    def edit 
    end 

    # POST /services 
    # POST /services.json 
    def create 
    @service = Service.new(service_params) 

    respond_to do |format| 
     if @service.save 
     format.html { redirect_to @service, notice: 'Service was successfully created.' } 
     format.json { render :show, status: :created, location: @service } 
     else 
     format.html { render :new } 
     format.json { render json: @service.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

如果你想显示所有与在服务显示页面的服务,则相关的reviews的,您需要调整您的service_controller show行动这样

def show 
@service = Service.find(params[:id]) 
@reviews = @service.reviews 
end 

我真的不明白你到底是要完成的任务。如果您要访问在放映视图某种服务的评论,你可以简单地做

@reviews = @service.reviews 

,如果你有你的服务控制器@服务对象这做那。

如果这不是你需要的,请编辑你的问题,并提供一个更清晰的解释。