在编辑时以表单形式显示 hstore 保存的值以供输入

Displaying hstore saved values in form for input when editing

我在 form_for 中显示 hstore 数据(过滤器)的保存值时遇到问题。 它保存在数据库中,但是当我返回此视图编辑某些内容时,我看不到输入表单字段中的实际值,就像在没有散列的正常 form_for 中一样。

这是我查看代码的快捷方式

<%= form_for @lesson, url: { action: "step3" }  do |f| %> 
    <%= f.fields_for :filters do |d| %> 
        <%= @lesson.filters["age_from"] %> # like this value would be displayed
        <%= d.text_field :age_from %>
        <%= d.text_field :age_to %>
        <%= d.text_field :name %>
        <%= link_to "Back", step1_lesson_path(@lesson) %>
        <%= submit_tag "Next" %>
    <%end%>
<%end%>

提前致谢

你能尝试稍微改变一下视图,在 fields_for 中传递 @lesson.filters 如下

....
  <%= f.fields_for :filters, OpenStruct.new(@lesson.filters) do |d| %>
    #your code goes here ...
  <% end %> 
....

不修改控制器动作的解决方案:

<%= f.fields_for :filters, OpenStruct.new(@lesson.filters) do |d| %>