我目前正在构建一个简单的CRM,现在我正在尝试嵌套一个功能,允许用户在联系人部分内分配任务。
所以问题......
当我点击编辑联系人部分而不是编辑表单时,当我点击提交表单时,我得到一个“ContactController#Update中的NoMethodError”。但是我的联系人控制器中从未改变任何内容。
以下是整个错误页面的屏幕截图。
以下是我的整个 contacts_controller.rb 文件。
class ContactsController < ApplicationController
def index
@contacts = Contact.all
end
def show
@contact = Contact.find(params[:id])
end
def new
@contact = Contact.new
end
def edit
@contact = Contact.find(params[:id])
end
def create
@contact = Contact.new(contact_params)
if @contact.save
redirect_to @contact
else
render 'new'
end
end
def update
@contact = Contact.find(params[:id])
if @contact.update(contact_params)
redirect_to @contact
else
render 'edit'
end
end
def destroy
@contact = Contact.find(params[:id])
@contact.destroy
redirect_to contacts_path
end
private
def contact_params
params.require(:contact).permit(:first_name, :last_name, :job_title, :twitter_url, :linkedin_url, :facebook_url, :medium_url, :email_field, :telephone_field)
end
end
我完全不知道发生了什么事让我的控制器崩溃...
如果您需要我的其他任何代码,请询问。
提前谢谢你!
=============================
这是我的 edit.html.erb 视图代码:
<hr>
<h1>Edit Contact</h1>
<%= render 'form' %>
<%= link_to 'Back', contacts_path %>
这是我的 _form.html.erb 代码:
<%= form_with model: @contact, local: true do |form| %>
<p>
<%= form.text_field :first_name, placeholder: "Enter Contact Name" %>
</p>
<p>
<%= form.label :job_title %><br>
<%= form.text_field :job_title %>
</p>
<p>
<%= form.label :twitter_url %><br>
<%= form.text_field :twitter_url %>
</p>
<p>
<%= form.label :linkedin_url %><br>
<%= form.text_field :linkedin_url %>
</p>
<p>
<%= form.label :facebook_url %><br>
<%= form.text_field :facebook_url %>
</p>
<p>
<%= form.label :medium_url %><br>
<%= form.text_field :medium_url %>
</p>
<p>
<%= form.label :email_field %><br>
<%= form.text_field :email_field %>
</p>
<p>
<%= form.label :telephone_field %><br>
<%= form.text_field :telephone_field %>
</p>
<p>
<%= form.submit %>
</p>
<% end %>
这是我在模特中的记录:
t.string :first_name
t.string :last_name
t.string :job_title
t.string :twitter_url
t.string :linkedin_url
t.string :facebook_url
t.string :medium_url
t.string :email_field
t.string :telephone_field
这是我的 contact.rb 型号代码
class Contact < ApplicationRecord
has_many :notes
has_many :tasks
validates :title, presence: true,
length: { minimum: 5}
端
答案 0 :(得分:0)
您需要将validates :title, presence: true,length: { minimum: 5}
替换为validates :job_title, presence: true,length: { minimum: 5}