我有一个使用jQuery提交的表单:
<form data-type="html" novalidate="novalidate" id="free_circuit_form" class="new_experiment" action="/en/experiments" accept-charset="UTF-8" method="post">
<input name="utf8" type="hidden" value="✓" />
<input type="hidden" name="authenticity_token" value="+0BPI4JbryN/WVCGrA0OxZNIteXb0p01XZJsxVtW9qYFIxt0EgQ6OJ2rDpaTmQwlVPe9a/qlwEteHvnjWbysOw==" />
<input type="hidden" id="experiment_not_signed_in_circuit_data" name="experiment[not_signed_in_circuit_data]"/>
</form>
但是当我在控制器中访问params
时,我得到了它nil
! params
不应包含我通过表单发送的所有参数吗?
在实验控制器中,我允许参数为:
def experiment_params
params.require(:experiment).permit(: not_signed_in_circuit_data, :title, :circuit, :intro_text, :public, :meta_description, :thumbnail => [:data], :descriptions_attributes => [:id, :data, :title, :position], :circuits_attributes => [:id, :data, :title, :position, :circuit_types])
end
有什么想法吗?
修改
在我尝试使用应用程序控制器将操作置于:
之后,这是请求的服务器日志Started POST "/en/not_signed_in_circuit" for 127.0.0.1 at 2018-05-12 18:38:24 +0300
Processing by ApplicationController#not_signed_in_circuit as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"tNwIjklA9Ic3u7jOpMJUSPPd8lDmKkZTppG0UvQuBchKv1zZ2R9hnNVJ5t6bVlaoNGL63sddGy2lHSF09sRfVQ==", "experiment"=>{"not_signed_in_circuit_data"=>"{\"public\":false,\"title\":\"abc\",\"circuits\":[{\"circuit\":\"0\",\"text\":\"\"}]}"}, "locale"=>"en"}
我可以在日志中看到参数,但在操作中,params
为nil