Ruby on rails 未定义的方法“title';for nil:ruby中的NilClass

Ruby on rails 未定义的方法“title';for nil:ruby中的NilClass,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,当我呈现页面时,我得到了nil:NilClass的未定义的方法“title”以下是我的代码: routes.rb get 'contact-us' => "pages#contact_form" post 'contact-us' => "pages#contact_us" #http://localhost:3000/contact-us def contact_form @page = Page.find_by_seo('contact-us') @inqui

当我呈现页面时,我得到了nil:NilClass的
未定义的方法“title”
以下是我的代码:

routes.rb

get 'contact-us' => "pages#contact_form"
post 'contact-us' => "pages#contact_us"
#http://localhost:3000/contact-us
def contact_form 
    @page = Page.find_by_seo('contact-us')
    @inquiry = Inquiry.new
  end

  def contact_us
    @inquiry = Inquiry.new(inquiry_params)
    respond_to do |format|
      if @inquiry.save
        InquiryMailer.welcome_email(@inquiry).deliver
        format.html { redirect_to :back, success: 'Your request successfully sent.' }
        format.json { render '/contact-us', status: :created, location: @inquiry }
      else
        format.html { render :contact_form, notice: 'Please fill all the fields.' }
        format.json { render json: @inquiry.errors, status: :unprocessable_entity }
      end
    end
  end
<div class="contact_left">
    <ul class="contact-form_address">
      <li><%= @page.title %></li>
      <li><%= @page.description.html_safe %></li>
    </ul>
    <div class="map">
      <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d119743.53374944824!2d85.75041271337584!3d20.300870219682118!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3a1909d2d5170aa5%3A0xfc580e2b68b33fa8!2sBhubaneswar%2C+Odisha!5e0!3m2!1sen!2sin!4v1460021407530" width="100%" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>
     </div>
</div>
<div class="contact_right">
   #Contact Form here...
</div
pages\u controller.rb

get 'contact-us' => "pages#contact_form"
post 'contact-us' => "pages#contact_us"
#http://localhost:3000/contact-us
def contact_form 
    @page = Page.find_by_seo('contact-us')
    @inquiry = Inquiry.new
  end

  def contact_us
    @inquiry = Inquiry.new(inquiry_params)
    respond_to do |format|
      if @inquiry.save
        InquiryMailer.welcome_email(@inquiry).deliver
        format.html { redirect_to :back, success: 'Your request successfully sent.' }
        format.json { render '/contact-us', status: :created, location: @inquiry }
      else
        format.html { render :contact_form, notice: 'Please fill all the fields.' }
        format.json { render json: @inquiry.errors, status: :unprocessable_entity }
      end
    end
  end
<div class="contact_left">
    <ul class="contact-form_address">
      <li><%= @page.title %></li>
      <li><%= @page.description.html_safe %></li>
    </ul>
    <div class="map">
      <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d119743.53374944824!2d85.75041271337584!3d20.300870219682118!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3a1909d2d5170aa5%3A0xfc580e2b68b33fa8!2sBhubaneswar%2C+Odisha!5e0!3m2!1sen!2sin!4v1460021407530" width="100%" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>
     </div>
</div>
<div class="contact_right">
   #Contact Form here...
</div
联系_form.html.erb

get 'contact-us' => "pages#contact_form"
post 'contact-us' => "pages#contact_us"
#http://localhost:3000/contact-us
def contact_form 
    @page = Page.find_by_seo('contact-us')
    @inquiry = Inquiry.new
  end

  def contact_us
    @inquiry = Inquiry.new(inquiry_params)
    respond_to do |format|
      if @inquiry.save
        InquiryMailer.welcome_email(@inquiry).deliver
        format.html { redirect_to :back, success: 'Your request successfully sent.' }
        format.json { render '/contact-us', status: :created, location: @inquiry }
      else
        format.html { render :contact_form, notice: 'Please fill all the fields.' }
        format.json { render json: @inquiry.errors, status: :unprocessable_entity }
      end
    end
  end
<div class="contact_left">
    <ul class="contact-form_address">
      <li><%= @page.title %></li>
      <li><%= @page.description.html_safe %></li>
    </ul>
    <div class="map">
      <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d119743.53374944824!2d85.75041271337584!3d20.300870219682118!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3a1909d2d5170aa5%3A0xfc580e2b68b33fa8!2sBhubaneswar%2C+Odisha!5e0!3m2!1sen!2sin!4v1460021407530" width="100%" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>
     </div>
</div>
<div class="contact_right">
   #Contact Form here...
</div

#联系方式在这里。。。
从你的评论来看,我想你必须把这些加起来进行修正

def contact_us
  respond_to do |format|
    if 
     .....
    else
     @page = Page.find_by_seo('contact-us')
     ....
     ....
    end
  end
end

从您的评论中检查b/w
render
re direct

的差异,我想您必须将其添加到修复中

def contact_us
  respond_to do |format|
    if 
     .....
    else
     @page = Page.find_by_seo('contact-us')
     ....
     ....
    end
  end
end
检查差异b/w
render
re direct

尝试以下操作-

def contact_us
    contact_form
    @inquiry = Inquiry.new(inquiry_params)
    respond_to do |format|
      ...
      ...
    end
  end
试试这个-

def contact_us
    contact_form
    @inquiry = Inquiry.new(inquiry_params)
    respond_to do |format|
      ...
      ...
    end
  end

Page.find\u by\u seo('contact-us')
值在数据库中不存在是在我的数据库中存在。当我手动输入URL
http://localhost:3000/contact-美国
我的数据即将发布。但问题是当我提交表单时。@Nithin问题在这里
format.html{render:contact\u表单,注意:'请填写所有字段。}
如果我使用
format.html{redirect\u to:back,注意:'请填写所有字段。}
这工作正常。但是我的所有表单字段值变为空。
Page.find\u by\u seo('contact-us')
值在数据库中不存在是在我的数据库中存在。当我手动输入URL
http://localhost:3000/contact-美国
我的数据即将发布。但问题是当我提交表单时。@Nithin问题在这里
format.html{render:contact\u表单,注意:'请填写所有字段。}
如果我使用
format.html{redirect\u to:back,注意:'请填写所有字段。}
这工作正常。但是我的所有表单字段值都变为空。谢谢您的回答。:)谢谢你的回答。:)