我有一個聯繫表單設置並正在處理「聯繫人」頁面。但是,當我將該表單複製到另一個頁面時,出現此錯誤:'表單中的第一個參數不能包含零或爲空'。在多個頁面上使用相同表單時Ruby on Rails錯誤
這裏是我的ContactController:
class ContactsController < ApplicationController
def new
@contact = Contact.new
end
def create
@contact = Contact.new(params[:contact])
if @contact.valid?
ContactMailer.contact_email(@contact).deliver_now
redirect_to new_contact_path, notice: "Your email has been sent. Thank you."
else
render :new
end
end
end
下面是其他頁面控制器:
class GolfcoursesController < ApplicationController
protect_from_forgery
def index
@golf_courses = GolfCourse.all
end
def show
@golf_courses = GolfCourse.all
@golfcourse = GolfCourse.find_by(slug: params[:slug])
@holes = @golfcourse.golf_holes
end
def events
end
def membership
end
def practice_facilities
end
def contact
end
def golf
@golf_courses = GolfCourse.all
end
def new
@contact = Contact.new
end
def create
@contact = Contact.new(params[:contact])
if @contact.valid?
ContactMailer.contact_email(@contact).deliver_now
redirect_to new_contact_path, notice: "Your email has been sent. Thank you."
else
render :new
end
end
end
這裏是形式:
<div class="container">
<h4>Let us know if you have any questions.</h4>
<%= form_for @contact, :html => {:role => 'form'} do |f| %>
<div class="form-group">
<%= f.label :name, 'Enter your name:' %>
<%= f.text_field :name, class: 'form-control' %>
</div>
<div class="form-group">
<%= f.label :email, 'Email:' %>
<%= f.email_field :email, class: 'form-control' %>
</div>
<div class="form-group">
<%= f.label :message, 'Message:' %>
<%= f.text_area :message, class: 'form-control', :rows => 3 %>
</div>
<div class="form-group">
<%= f.submit 'Submit', class: 'btn btn-default' %>
</div>
<% end %>
</div>
提前任何幫助謝謝!
你所說的「另一頁」是什麼意思? 「其他頁面」是否有非'nil'' Contact'實例?如果它由另一個控制器動作顯示,則「ContactController」與它無關。 –
它沒有顯示在另一個控制器中。基本上,我所做的只是將聯繫人表單從聯繫人頁面複製並粘貼到另一個需要聯繫表單的頁面上。我沒有改變任何其他文件中的其他內容。 –
哪個控制器操作是您的新頁面? – eirikir