params键无法访问 - 我丢失了从表单到控制器的参数内容

时间:2018-02-11 12:23:37

标签: ruby-on-rails

我无法得到它,我认为这是一个愚蠢/愚蠢的问题,但我无法弄明白为什么。我有返回2个参数的表单,但我无法检索它们!

我无法弄清楚出了什么问题!

<%= form_for @template do |t|  %>
  <%= t.label :description, "Description" %><br>
  <%= t.text_field :description %>
  <%= t.trix_editor :text %>
  <%= t.submit 'Enregistrer', class: 'Btn' %>
<% end %>

所以,在控制台之后:

>> params

=> <ActionController::Parameters {"utf8"=>"✓", "_method"=>"patch", "authenticity_token"=>"J0pCf1KluTo2uXnpmD9uBFi6bE7FtxI2Cp1gB1KAOFhsR8Sli2lN2vQuXOv/I816vHBT+BYvNb5D7eOdv4CQCQ==", "template"=><ActionController::Parameters {"description"=>"ds", "text"=>"<div>ds s</div>"} permitted: false>, "commit"=>"Enregistrer", "controller"=>"templates", "action"=>"update", "id"=>"2"} permitted: false>

>> params.has_key?(:text)
=> false

>> params.require(:template).permit(:description, :text)

=> <ActionController::Parameters {"description"=>"ds", "text"=>"<div>ds s</div>"} permitted: true>

>> params.has_key?(:text)
=> false

任何帮助都会被指定!

格雷格

1 个答案:

答案 0 :(得分:1)

您需要访问&#34; root&#34;在这种情况下,由于您使用form_for template的方式,您发送的短信已经发送。

如果你params[:template] {@}},你会得到内容:

<ActionController::Parameters {"description"=>"ds", "text"=>"<div>ds s</div>"} permitted: false>

这是您正在寻找的关键text

所以你可以使用Hash#key?

params[:template].key?(:text)   # true
params[:template][:text]        # "<div>dss</div>"
params[:template][:description] # "ds"