2013-05-28 4 views
0

поэтому у меня есть эти созданные пользователем страницы, содержащие изображения, которые принадлежат каждой странице. Я хочу сделать кнопки редактирования для каждого из этих изображений, которые содержат image_id, чтобы сайт знал, какие данные изображения должны быть изменены. Как я могу сделать так, чтобы, когда пользователь нажимает кнопку редактирования изображения, появляется всплывающая форма, которая уже знает, что она модифицирует это конкретное изображение и его атрибуты в базе данных?Как разрешить пользователю редактировать атрибуты определенного изображения в Rails?

форма выглядит следующим образом:

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

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

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

    <%= f.submit %> 

Но он не знает, каким именно образом изменить. Есть ли способ сделать это так, что, когда вы нажмете кнопку редактирования для определенного изображения, появится форма, позволяющая редактировать заголовок и описание этого изображения? Надеюсь, это было ясно, спасибо за помощь.

ответ

0

так @page has_many :images вы могли генерировать редактировать ссылки на

<% @page.images.each do |image| %> 
    <%= link_to 'edit', edit_image_path(image) %> 
<% end %> 

Клик на один из этих ссылок направит вас к чему-то вроде /images/:id/edit с изображением. id in: 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

+0

это выглядит многообещающим, я загляну в него. любой способ иметь эту ссылку имеет класс «edit-button» (используя загрузку)? – jspy

+0

Добавление класса очень просто: 'link_to 'edit', edit_image_path (изображение), класс: 'edit_button'' –

0

Поскольку вы используете form_for @image, ваша форма уже знает точный объект, который вы собираетесь редактировать. Не должно быть необходимости явно указывать photo_id в любом месте формы. Просто убедитесь, что у вас есть title и description полей в таблице фотографий.

Edit: Визуализация нескольких изображений

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

Хотя есть куча картинок на одной странице? – jspy

+0

Да, я отредактировал ответ. Взгляни. – Nerve

Смежные вопросы