我目前有一個使用控制器,模型和郵件程序(Mandrill)的工作軌道聯繫表格(摘自另一個SO答案),可用於/聯繫。它響應新的並在控制器中創建路由,並仍使用活動模型功能。該表單不使用ajax。如何將工作導軌聯繫表單轉換爲引導模式?
我現在需要嘗試使我的聯繫表單在主頁上工作,而不是通過模態彈出窗口的/聯繫頁面。
我已經閱讀了許多關於模態的SO查詢,但似乎都與獲取模式來執行特定的事情有關 - 而不是創建模態形式來模仿正常形式。
要開始我添加了一個工作模式,到主頁。
當我嘗試將表單添加到主頁模型中時,由於表單是home_controller的一部分,我遇到了方法錯誤。在將新的和創建控制器操作複製到我的家庭控制器後,我意識到,表單只是隱藏的,並且在頁面加載時(通過索引操作)仍然在運行。 將@message = Message.new
添加到索引操作中似乎沒有幫助 - 並且我不希望這種模式加載?
下面是我的聯繫頁面中工作表單的主要移動部分,以及主頁上的工作模式框 - 如何合併兩者並保留我擁有的功能?
這裏是接觸控制:
#/app/controllers/contact_controller.rb
class ContactController < ApplicationController
def new
@message = Message.new
end
def create
@message = Message.new(params[:message])
if @message.valid?
NotificationsMailer.new_message(@message).deliver
redirect_to(root_path, :notice => "Message was successfully sent.")
else
flash.now.alert = "Please fill all fields."
render :new
end
end
end
消息模型
#app/models/message.rb
class Message
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
attr_accessor :name, :email, :subject, :body
validates :name, :email, :subject, :body, :presence => true
validates :email, :format => { :with => %r{[email protected]+\..+} }, :allow_blank => true
def initialize(attributes = {})
attributes.each do |name, value|
send("#{name}=", value)
end
end
def persisted?
false
end
end
和視圖:
<%= form_for @message, :url => contact_path do |form| %>
<fieldset class="fields">
<div class="field">
<%= form.label :name %>
<%= form.text_field :name %>
</div>
<div class="field">
<%= form.label :email %>
<%= form.text_field :email %>
</div>
<div class="field">
<%= form.label :subject %>
<%= form.text_field :subject %>
</div>
<div class="field">
<%= form.label :body %>
<%= form.text_area :body %>
</div>
</fieldset>
<fieldset class="actions">
<%= form.submit "Send" %>
</fieldset>
<% end %>
最後在我的主頁我有這樣的模式(不包含表格)
<div class="modal fade" id="modal_contact_form">
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h3>Contact Form</h3>
</div>
<div class="modal-body">
<p>Test Content for Modal</p>
</div>
<div class="modal-footer">
</div>
</div>
它是此<li><a href="#modal_contact_form" data-toggle="modal">contact</a></li>
我嘗試叫過多種多樣得到這個工作直到這一點 - 主要的問題,我需要身邊讓我的頭(我認爲)是,形式是由home_controller上的索引操作加載 - 理想情況下,我想我仍然想使用我的contact_controller中的邏輯?
任何意見和建議表示讚賞 - 在這一點上,我想知道是否有一種簡單的方法只是將表單移入一個模式或不!
乾杯,
米茲帕
注:在迴應查詢時我對阿賈克斯,我只是避免AJAX由於感知困難,缺乏與嘗試它在軌道上3.2的進步 - 我會很高興使用它,如果它實際上更容易把它變成ajaxified形式?
他們的路線怎麼樣?你能在這裏張貼嗎? – monteirobrena 2013-08-07 02:43:26