Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在编辑表单中检查当前对象的属性值?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 如何在编辑表单中检查当前对象的属性值?

Ruby on rails 如何在编辑表单中检查当前对象的属性值?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个嵌套模型。如何在编辑表单中检查网络模型对象(酒店)的属性值?我不知道如何在_hotels_fields.html.erb中编写if/else语句 edit.html.erb <% provide(:title, "Edit trip") %> <h1>Edit trip</h1> <%= form_for(@trip) do |f| %> <%= render 'fields_edit', f: f %> <%=

我有一个嵌套模型。如何在编辑表单中检查网络模型对象(酒店)的属性值?我不知道如何在_hotels_fields.html.erb中编写if/else语句

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 %>
<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 %>
<% 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>

编辑行程
\u fields\u 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 %>
<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 %>
<% 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>

酒店

\u hotels\u fields.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 %>
<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 %>
<% 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>

呈现任何文本


\u hotels\u fields.erb.html
的上下文中,一个特定的
hotels
(如果只有一个,为什么这里是复数?)由
f.object
表示。因此,这应该是可行的:

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

...
...

我不知道如何将if语句放在这个“:hotels”对象上。我试过你的建议,但没用。你知道为什么吗 利润

现在好像你把它搞混了。如果您在计算手中的对象时遇到问题,请尝试以下方法:从表单生成器中获取内部变量名称(在第一个示例中为was
f
,现在在注释中为
builder
),然后调用
。也许这可以帮助您解决问题。