小编Jer*_*ryA的帖子

Rails 4通过渲染部分传递多个变量

这个问题已被多次询问,但我无法让它发挥作用.

我想把多个变量传递给我这样的部分...

<%= f.fields_for :materials do |builder| %>
  <%= render partial: 'material_fields', locals: {f: builder, feed: true} %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

这里是部分material_fields.html.erb的一行,我希望f.select预先填充Yes选项或"true"值.(有些情况我希望它是假的)

<%=f.select :is_feed, options_for_select([['Yes', true], ['No', false]], feed )%>
Run Code Online (Sandbox Code Playgroud)

f是可用的,而feed不是.....我不知道为什么这不起作用.我已经在select语句之外尝试了<%= feed%>但它仍然不起作用.

在这两种情况下,我得到未定义的局部变量或方法`feed'.

有人知道我的语法有什么问题吗?

ruby ruby-on-rails

6
推荐指数
1
解决办法
5692
查看次数

Rails 4多个嵌套表单和强参数

我使用rails 4和嵌套表单和强参数.

我需要从一个表单更新多个模型.

这就是我宣布强大参数的方式.从父控制器.该协会是的has_many和belongs_to的顺序去Rundatum->材料 - > ParticleSize

def rundatum_params
    params.require(:rundatum).permit( :material, :company_id, :material_density, :feed_moisture, :date, :building, :machine, :material_weight, :time_mins, :rate_lb_hr, :mill_amps, :class_amps, :mill_liner, :beater_plate_size, :mill_rpm, :class_rpm, :feeder_type, :feeder_setting, :feeder_aug_diameter, :tlgs_set, :air_pressure, :temp_mill_out, :temp_prod_out, :temp_ambient, 

    materials_attributes: [:id, :name, :density, :msds_url, :moisture, :notes, :_destroy], 

    particle_sizes_attributes: [:id, :screen, :percent_through, :percent_retained, :_destroy])
end
Run Code Online (Sandbox Code Playgroud)

rails服务器的输出是:

Rundatum Load (0.6ms)  SELECT  "rundata".* FROM "rundata"  WHERE "rundata"."id" = $1 LIMIT 1  [["id", 7]]

Unpermitted parameters: particle_sizes_attributes
Run Code Online (Sandbox Code Playgroud)

从一个表单更新多个模型时,声明强参数的方法是什么?

谢谢

nested-forms strong-parameters ruby-on-rails-4

4
推荐指数
1
解决办法
1596
查看次数