2015-01-26 2 views
1

у меня есть «общий» контроллер, отвечающие за управление всеми публичных страницами и действиямиRails 4 Сильных параметры в общем контроллере

class PublicController < ApplicationController 

    def index 
    end 

    def contact 
    @contact = Contact.new(contact_params) 
    end 

    private 

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

end 

Но когда я хочу, чтобы получить доступ к «связаться с нами» У меня есть следующие ошибки

пары отсутствуют или значение пусто: контакт

можно ли управлять сильными параметрами внутри «общим» контроллер или я должен используйте их только как часть контроллера с именем «Контакт»?

ответ

2

Это похоже на ошибку, потому что у вас нет параметра контакта в хэшах параметров. Вы хотите что-то больше, как следующее:

def contact 
    @contact = Contact.new 
end 

def send_contact 
    @contact = Contact.new(contact_params) 
end 

private 

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

Или

def index 
    @contact = Contact.new 
end 

def contact 
    @contact = Contact.new(contact_params) 
end 

private 

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

По сути, вы должны быть только призывающих contact_params на акции вы проводки в.

+0

Я фактически добавил условное утверждение, чтобы отличить состояние действия в контроллере и взял его на работу, как вы объяснили. –

Смежные вопросы