2011-09-13 44 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