我在我的视图中使用OpenStruct form for
,如下所示,
<%= form_for(OpenStruct.new(params[:f]), as: :f, url: product_types_path, method: :get, remote: true, html: {class: 'type'}) do |f| %>
<div class="field">
<%= f.label :product_type_id %>
<%= foreign_key(f, :product_type_id, Asset::Product::Type) %>
</div>
<% end %>
如果product_type_id is nil or blank or empty?
我试过了,
<% unless product_type_id.blank? %>
<div class="field">
<%= render 'form' %>
</div>
<% else %>
<p>Select Product Type</p>
<% end %>
答案 0 :(得分:0)
因此,如果我做对了你想要做的就是如果你用param product_type_id
收到的内容是空白的话就不会呈现表单。
您是否可以在控制器中实例化变量而不是直接在表单构建器中定义它?
例如在您的控制器中:
def index
@product_type = OpenStruct.new(params[:f])
end
并在您看来:
<% unless @product_type.product_type_id.blank? %>
<div class="field">
<%= render 'form', product_type: @product_type %>
</div>
<% else %>
<p>Select Product Type</p>
<% end %>
最后你的部分:
<%= form_for(product_type), as: :f, url: product_types_path, method: :get, remote: true, html: {class: 'type'}) do |f| %>
<div class="field">
<%= f.label :product_type_id %>
<%= foreign_key(f, :product_type_id, Asset::Product::Type) %>
</div>
<% end %>