приложение / просмотров / дизайн / index.html.erb:
...
<% @search.each do |design| %>
<h3><%= design['name'] %></h3>
<h5><%= image_tag design['thumbnail_url'] %></h5>
<%= button_to 'Save',
designs_path(
design: design.slice('name', 'thumbnail_url') # etc...
),
method: :post,
data: { disable_with: 'Loading...' }
%>
<% end %>
приложение / Config / routes.rb:
resources :designs, only: [:index, :create]
приложение / контроллеры / designs_controller.rb:
class DesignsController < ApplicationController
# ...
def create
@design = Design.new(design_params)
@design.save!
# just an example...
redirect_to designs_path, success: 'Design has been saved!'
end
private
def design_params
params.require(:design).permit(:name, :thumbnail_url) # etc...
end
end
Todos:
- ваша модель
Design
должна иметь атрибуты, которые вы хотите сохранить (например: :name
? И :thumbnail_url
?). Я предполагал, что вы уже создали / перенесли эти атрибуты; если нет, добавьте их.
- , поскольку в моем коде выше все еще есть уязвимость, заключающаяся в том, что любой пользователь может изменить
<button>
<form action='...'>
(т. Е. Они могут изменить «имя» дизайна по своему желанию, когда он будет сохранен), тогда мой Решение, приведенное выше, все еще не является лучшим решением, хотя для простоты, и если предположить, что эта уязвимость не является проблемой для вас, приведенного выше кода уже достаточно.