如何修复参数需要多控制器视图中的form_for联系人

时间:2019-04-12 13:04:03

标签: ruby-on-rails ruby ruby-on-rails-4

我的联系表格FOR中有问题, 我有一个联系表,我想在我的产品视图中显示我的联系表。 如果我确定我的要求参数有问题

我的contact_params在我的ContactController中工作:

def contact_params
   params.require(:contact).permit(:name, :email, :body)
end

我在ApplicationController中添加了

def set_contact
   @contact = Contact.new params[:contact] || {}
end

以及我的ProductsControler中的

show
   @contact = :set_contact
end

我的路线是:

get 'contact', to: 'contacts#new', as: 'new_contact'
post 'contact', to: 'contacts#create', as: 'create_contact'

我的渲染与之相同:

<%= render :partial => "contacts/contact" %>

和我在_contact.html.erb中的视图:

 <%= form_for @contact, url: create_contact_url do |f| %>
  <%= f.text_field :name  %>
  <%= f.email_field :email %>
  <%= f.text_area :body  %>
 <%= f.submit 'Send' %>

铁路说我:

ActionController::ParameterMissing (param is missing or the value is empty: contact):

如果我删除了不起作用的require(:contact),请说我:

Unpermitted parameter: :contact

谢谢

2 个答案:

答案 0 :(得分:0)

尝试将参数与产品参数合并 params [:product] .merge!(:contact)

例如 def company_params     params [:company] .merge!(users_attributes:{'0':user_params.to_h})     params.require(:company).permit(       :name,:contact_person_name,:email,       :contact_person_number,:terms_and_conditions)   结束

听到users_attributes是我的另一种形式。 为我工作。

祝你好运。

答案 1 :(得分:0)

您在ProductsControler @contact = :set_contact的方法#show中有错字,应该在没有set_contact的情况下调用方法:

正确的代码:@contact = set_contact