从Ruby on Rails 4中的另一个控制器渲染表单

时间:2014-10-02 10:45:27

标签: ruby-on-rails-4

我正在尝试在联系页面上显示一个表单,但它来自另一个控制器。

当前代码导致"表格中的第一个参数不能包含nil或为空"

搜索后,看起来没有传递的本地哈希有问题。

如何使用此代码正确传递本地代码以使其有效?

inquiries_controller.rb

class InquiriesController < ApplicationController

 def new
    @inquiry = Inquiry.new
 end
 def create
    @inquiry = Inquiry.new(params[:inquiry])
       if @inquiry.deliver
          render :thank_you
       else
          render :new
    end
  end
end

inquiries_form.html.erb

<%= form_for @inquiry do |f|
       f.text_field :name
       f.text_field :email
       f.text_area :message
       f.submit "Send"
 end %>

static_pages \ contact.html.erb

<%= render "inquiries/form",
           :inquiry => @inquiry %>

1 个答案:

答案 0 :(得分:2)

HI尝试将此添加到您的StaticPages控制器

   class StaticPagesController < ApplicationController
     def contact
      @inquiry = Inquiry.new
    end
   end

这是一个非常常见的错误。另外我相信你的表格也可能是错误的,除非你使用允许这种形式的宝石。如果这样可以解决您的错误,请告诉我。