2015-07-16 2 views
0

У меня есть ниже фрагмент кода:Не могу понять причину ошибки синтаксиса в рельсах 4.2

params.require(:posting_status).permit(:email, :craig_password, :mail_password, :posting_id, post_to:[]) 

эта линия не дает синтаксическую ошибку, но когда я действительно люблю:

params.require(:posting_status).permit(:email, :craig_password, :mail_password, post_to:[], :posting_id) 

это дает синтаксическую ошибку, не может найти причину.

ответ

1

В первом случае вы использовали символ в начале и (неявный!) Хэш в конце.

Во втором случае неявный хэш не в конце. Явный хэш решает проблему.

params.require (: posting_status) .permit (: электронная почта,: craig_password,: mail_password, {post_to: []},: posting_id)

P.S. Исходный код метода 'разрешения':

Файл actionpack/Библиотека/action_controller/металл/strong_parameters.rb, линия 325

def permit(*filters) 
    params = self.class.new 

    filters.flatten.each do |filter| 
    case filter 
    when Symbol, String 
     permitted_scalar_filter(params, filter) 
    when Hash then 
     hash_filter(params, filter) 
    end 
    end 

    unpermitted_parameters!(params) if self.class.action_on_unpermitted_parameters 

    params.permit! 
end 
+0

великолепно !!! спасибо @ Руслан Корниенко – roarfromror

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