加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – Rails未定义方法’model_name’

发布时间:2020-12-17 04:00:53 所属栏目:百科 来源:网络整理
导读:我有以下型号: class Contact attr_accessor :name,:emails,:message def initialize(attrs = {}) attrs.each do |k,v| self.send "#{k}=",v end end def persisted? false endend 我在我的视图中呼吁联系表格如下: div class="email_form" %= render 'for
我有以下型号:

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

我在我的视图中呼吁联系表格如下:

<div class="email_form">
   <%= render 'form' %>
</div>

这是控制器:

class ShareController < ApplicationController
  layout "marketing_2013"
  respond_to :html,:js

  def index
    @contact = Contact.new
  end
end

这是表格:

<%= 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 %>

出于某种原因,我不断收到此错误:
联系人的未定义方法model_name:Class

我目前的任何理由不起作用?

解决方法

除了config / routes.rb中的正确路由之外,您还需要在模型上使用以下两条说明:

include ActiveModel::Conversion
extend  ActiveModel::Naming

看看这个问题:form_for without ActiveRecord,form action not updating.

对于这些答案的路由部分,您可以将其添加到config / routes.rb:

resources :contacts,only: 'create'

这将产生以下路线:

contacts POST /contacts(.:format)  contacts#create

然后,您可以使用此操作(联系人#create)来处理表单提交.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读