2013-12-22 34 views
0

我有一個嵌套模型。如何查看編輯表單中對象模型的對象(酒店)的屬性值?我無法弄清楚如何寫if/else語句在_hotels_fields.html.erb如何檢查編輯表單中當前對象的屬性值?

edit.html.erb

<% provide(:title, "Edit trip") %> 
<h1>Edit trip</h1> 

<%= form_for(@trip) do |f| %> 
    <%= render 'fields_edit', f: f %> 
    <%= f.submit "Save changes" %> 
<% end %> 

_fields_edit.html.erb

<p> 
<%= f.label :image %> 
<%= f.file_field :image %> 
</p> 

<p> 
<%= f.label :content %> 
<%= f.text_area :content %> 
</p> 

<p>Hotel</p> 

<%= f.fields_for :hotels do |builder| %> 
<%= render 'hotels_fields', f: builder %> 
<% end %> 

_hotels_fields.html.erb

<% if @trip.hotels.name == "hotel" %> 

<p>Render any text</p> 
<% end %> 

<fieldset> 

<p> 
    <%= f.label :name %> 
    <%= f.text_field :name %> 

    <%= f.label :description %> 
    <%= f.text_field :description %> 
</p> 
</fieldset> 
+0

也許這可能會幫助你。 http://stackoverflow.com/a/40309136/4111295 –

回答

0

_hotels_fields.erb.html的背景下,一個特定的hotels(爲什麼複數在這裏如果您只有一個?)由f.object表示。因此,這應該工作:

<% if f.object.name == 'hotel' %> 
    ... 
<% else %> 
    ... 
<% end %> 
+0

我無法找到如何把這個「:酒店」對象的聲明。我嘗試了你的建議,但它無法工作。你有什麼想法,爲什麼? <%= f.fields_for:hotels do | builder | %> <%如果f.hotel.name == 「名稱」 %>

利潤

<% end %> <%= builder.label:名稱%> <%= builder.text_field:名稱%> <%= builder.label:description%> <%= builder.text_field:description%> <% end %> – Igor

+0

現在它像你一樣接縫混合起來。如果你在計算你手中的對象時有問題,請嘗試以下操作:從表單構建器中獲取內部變量名(在第一個示例中爲'f',現在在您的註釋中爲'builder')並調用'<% = debug builder.object.inspect%>'。 – spickermann

相關問題