2011-03-10 145 views
0

我有两张桌子:场地和评论,其中1个场地可以有很多评论,评论属于场地。我现在在会场展示页面的链接添加评论到场馆的评论新的一页:如何将新记录表格移动到相关记录显示页面?

场地/ show.html.erb

<div class="button"> 
    <%= link_to 'Add a review', new_venue_review_path(@venue) %> 
</div> 

评论/ new.html.erb

<% form_for [@venue, @review] do |f| %> 
    <p>title: <br> 
    <%= f.text_field :title %></p> 

    <%= submit_tag %> 
<% end %> 

评论控制器

def new 
    @review = Review.new 
    end 

    def create 
    @review = Review.new params[:review] 
    @review.venue = @venue 
    if @review.save 
     flash[:notice] = 'Review added' 
     redirect_to venue_path(@venue) 
    else 
     render :action => :new 
    end 
    end 

场馆控制器

class VenuesController < ApplicationController 

    def index 
    if 
     @venues = Venue.with_type(params[:venuetypes]).with_area(params[:areas]) 
    else 
     @venues = Venue.all 
    end 
    end 

    def new 
    @venue = Venue.new 
    end 

    def create 
    @venue = Venue.new params[:venue] 
    if @venue.save 
     flash[:notice] = 'Venue added' 
     redirect_to venues_path 
    else 
     render :action => :new 
    end 
    end 

    def edit 
    @venue = Venue.find(params[:id]) 
    end 

    def update 
    @venue = Venue.find(params[:id]) 
    @venue.attributes = params[:venue] 
    if @venue.save! 
    flash[:notice] = 'Venue updated successfully' 
    redirect_to venues_path(@venue) 
    end 
end 

def show 
    @venue = Venue.find(params[:id]) 
end 
end 

路线

resources :venues do 
    resources :reviews 
    end 
end 

我如何可以移动增加新的形式审查直接进入场馆展示页面?移动代码给NilClass:Class错误提供了未定义的方法`model_name'。

感谢您的帮助!

+0

什么场地控制器是什么样子? – 2011-03-10 23:11:17

+0

显示您的场地控制器代码太 – 2011-03-10 23:11:47

+0

@Ben李和@保罗施雷伯补充说,感谢在看看。 – Dave 2011-03-10 23:15:39

回答

2

只需将@review = Review.new添加到场馆管制员的表演动作即可。然后把表格放在你的场地#show view file中。

venues_controller.rb

def show 
    @venue = Venue.find(params[:id]) 
    @review = Review.new 
end 
+0

非常感谢!它效果很好。 – Dave 2011-03-11 00:53:15

相关问题