gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 22:33:30 24 4
gpt4 key购买 nike

我有以下模型:

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>

这是 Controller :
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 %>

出于某种原因,我不断收到此错误: undefined method model_name for Contact:Class
有什么理由为什么我现在的东西不起作用?

最佳答案

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

include ActiveModel::Conversion
extend ActiveModel::Naming

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

对于 route这些答案的一部分,您可以将其添加到您的 config/routes.rb:
resources :contacts, only: 'create'

这将生成以下路线:
contacts POST /contacts(.:format)  contacts#create

然后您可以使用此操作 (contacts#create) 来处理表单提交。

关于ruby-on-rails-3 - Rails 未定义方法 'model_name',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14861716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com