我不确定我做了什么,但我的联系表单字段没有显示在页面上。我正在关注railscast 219.我将原始行<%= form_for @message do |f| %>
更改为<%= form_for Message.new do |f| %>
,因为我收到了字段的未定义方法。
new.html.erb:
<%= form_for Message.new do |f| %>
<p>
<%= f.label :email %><br />
<%= f.text_field :email %>
</p>
<p>
<%= f.label :content, "Message" %><br />
<%= f.text_area :content %>
</p>
<p><%= f.submit "Send Message" %></p>
<% end %>
联系人控制器:
def new
@message = Message.new
end
def create
@message = Message.new(params[:message])
if @message.valid?
# TODO send message here
flash[:notice] = "Message sent! Thank you for contacting us."
redirect_to root_url
else
render :action => 'new'
end
end
end
联系模式:
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
attr_accessor :email, :content
validates_length_of :content, :maximum => 500
def initialize(attributes = {})
attributes.each do |name, value|
send("#{name}=", value)
end
end
def persisted?
false
end
end
答案 0 :(得分:1)
您的变量指向消息模型,并且您只包含联系人模型。更改变量或创建新的消息模型。