1
我有兩個控制器頁面和聯繫人。頁面顯示來自數據庫的東西。聯繫人是簡單的聯繫表格,效果很好。現在我想把這個聯繫表單放在特定的頁面中。但我儘量使這一點,仍然有不一樣的模型類錯誤等Rails在其他控制器中呈現聯繫表格
這是我的聯繫控制器(控制器/ contact_controller):
class ContactController < ApplicationController
def new
@message = Message.new
end
def create
@message = Message.new(params[:message])
if @message.valid?
NotificationMailer.new_message(@message).deliver
redirect_to(root_path, :notice => "Sent.")
else
flash.now.alert = "Alert."
render :new
end
end
end
這是我的消息模型(模型/ 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
,這是形式(視圖/接觸/ new.html.erb):
<%= 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 %>
如何把這個表單放到頁面視圖中?
但做什麼用的:URL => contact_path? Shoudl我離開了嗎? – 2013-02-18 20:52:50
以及如何做到這一點set_message :) – 2013-02-18 21:03:38
對於url,我認爲你希望請求總是去聯繫人控制器,所以是的,你可以離開contact_path。 對於set_message,我已經更新了答案。 – Iazel 2013-02-18 21:20:14