den*_*icz 4 activemodel ruby-on-rails-3
我有以下型号:
class Contact
attr_accessor :name, :emails, :message
def initialize(attrs = {})
attrs.each do |k, v|
self.send "#{k}=", v
end
end
def persisted?
false
end
end
Run Code Online (Sandbox Code Playgroud)
我在我的视图中呼吁联系表格如下:
<div class="email_form">
<%= render 'form' %>
</div>
Run Code Online (Sandbox Code Playgroud)
这是控制器:
class ShareController < ApplicationController
layout "marketing_2013"
respond_to :html, :js
def index
@contact = Contact.new
end
end
Run Code Online (Sandbox Code Playgroud)
这是表格:
<%= form_for(@contact) do |f| %>
<%= f.label :name, "Your Name" %>
<%= f.text_field :name %>
<%= f.label :text, "Send to (separate emails with a comma)" %>
<%= f.text_field :emails %>
<%= f.label :message, "Email Text" %>
<%= f.text_area :message %>
<%= f.submit %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我不断收到此错误:
undefined method model_name for Contact:Class
我目前的任何理由不起作用?
Ric*_*ano 11
除了config/routes.rb中的正确路由之外,您还需要在模型上使用以下两条说明:
include ActiveModel::Conversion
extend ActiveModel::Naming
Run Code Online (Sandbox Code Playgroud)
看一下这个问题:没有ActiveRecord的form_for,表单操作没有更新.
对于route这些答案的部分,您可以将其添加到您的config/routes.rb:
resources :contacts, only: 'create'
Run Code Online (Sandbox Code Playgroud)
这将产生以下路线:
contacts POST /contacts(.:format) contacts#create
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用此操作(联系人#create)来处理表单提交.
| 归档时间: |
|
| 查看次数: |
7965 次 |
| 最近记录: |