如何让用户在Rails中编辑特定图像的属性?

时间:2013-05-28 18:49:11

标签: ruby-on-rails

所以我有这些用户生成的页面,其中包含属于每个页面的图像。我想为包含image_id的每个图像制作编辑按钮,以便网站知道要修改的图像数据。如何才能使用户点击图像的编辑按钮时,会弹出一个已经知道它正在修改特定图像及其在数据库中的属性的表单?

表格如下:

  <%= form_for @image do |f| %>

  <%= f.label :title %>
  <%= f.text_field :title %>

  <%= f.label :description %>
  <%= f.text_field :description %>

  <%= f.submit %>

但它不知道要修改哪个图像。有没有办法让它当你点击特定图像的编辑按钮时,会弹出一个表单,允许你编辑该图像的标题和描述?希望这很清楚,谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

由于您使用的是form_for @image,因此您的表单已经知道您要编辑的确切对象。不需要在表单中的任何位置明确指定photo_id。只需确保照片表中有titledescription个字段。

编辑:渲染多个图像

<% @photos.each do |photo| %>
<%= form_for photo ... %>
.....Your code ......
<% end %>
<% end %>

答案 1 :(得分:0)

由于@page has_many :images您可以通过

生成编辑链接
<% @page.images.each do |image| %>
   <%= link_to 'edit', edit_image_path(image) %>
<% end %>

点击其中一个链接会指向/images/:id/edit,其中image.id位于:id

您还可以为每张图片创建输入字段:

<%= form_for @page do |f| %>
  <% @page.images.each do |image| %>
    <%= f.fields_for image do |ff| %>
      <%= ff.text_field :name %>
    <% end %>
  <% end %>
<% end %>

请参阅Rails Guides