ユーザーが一連のスクリーンショットからビデオのカバー画像を選択できるページを持っているサイトに取り組んでいます。すべての画像がグリッドに表示され、jQuery を追加して、ユーザーが最後にクリックしたビデオが「選択」され、その周りにフレームが表示されるようにしました。
私が助けを必要としているのは、これをデータベースに書き込むことです。私が探しているのは、この選択 を保存する方法だけです。
これは私が今持っているものです。ビデオ コントローラーで:
def cover_selected
@video.cover_url = params[:selected_cover]
@video.save
end
これは、videos/show.html.erb にあります。
<%= stylesheet_link_tag 'application.css' %>
<% provide(:movie_url, @h264_encoding.url) %>
<div class="container">
<% if @original_video.status == "success" %>
<div id="strobemediaplayback">Movie goes here!</div>
<br/><h2>Select a cover image</h2>
<% @h264_encoding.screenshots.each_with_index do |screenshot,i| %>
<% if i%3 == 0 %>
<div class="row">
<% end %>
<div class="span3" style="margin-bottom:20px"><img class="screenshot" id="<%= i %>" src="<%= screenshot %>" />
</div>
<% if i%3 == 2 %>
</div>
<% end %>
<% end %>
<% end %>
</div>
<script>
$(document).ready(function(){
$('div.row img').click(function(e) {
e.preventDefault();
$('div.row img.selected').removeClass('selected');
$(this).addClass('selected');
$.ajax({
url: '/videos/cover_selected/',
data: { selectedCover: this.id },
});
});
});
</script>
そして、私のビデオ スキーマには以下が含まれます。
create_table "videos", :force => true do |t|
t.string "title"
t.timestamp "created_at", :null => false
t.timestamp "updated_at", :null => false
# ... and so on
t.string "cover_url"
end
@video の cover_url 属性を更新するにはどうすればよいですか?