我正在一个网站上工作,我有一个页面,用户可以从一组屏幕截图中选择视频的封面图片。我已经将图像全部显示在一个网格中,并且我添加了 jQuery,以便用户最后点击的任何视频都被“选中”并在其周围有一个框架。
我需要帮助的是将其写入数据库。我正在寻找的只是一种保存此选择的方法。
这就是我现在所拥有的。在视频控制器中:
def cover_selected
@video.cover_url = params[:selected_cover]
@video.save
end
这是在视频/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 属性?