2011-09-13 43 views
2

jobs_controller.rb:Ruby on Rails的不呈現局部

def create 
    @job = Job.new(params[:job]) 
    render "preview" if @job.save 
    end 

preview.html.haml:

- render @job 

_job.html.haml:

- content_for :title, "Job preview" 
%h1= @job.title 

問題:_job.html.haml文件中的@job不會被渲染,即使第一行的title變量正常工作。

+0

你一定'@ job'有'title'的值? – Slick23

+2

您的渲染正在使用'-'。應該用'='來回顯輸出。你的'preview.html.haml'是不正確的,你不能'渲染'和實例變量那樣:) –

回答

2

替換preview.html.haml

= render :partial => 'job', :locals => { :job => @job } 

那麼下面的部分將具有上述做的

- content_for :title, "Job preview" 
%h1= job.title 

較短的方式是

= render 'job', :job => @job 
+0

=渲染@job#也應該在局部變量中使用局部變量'job'。 – BitOfUniverse