我正在努力创建一个选项,供用户选择图像作为图像索引视图 ( @image.each do |image|
) 的专辑封面。但是,要使其生效,单选按钮的 for 必须跨越每个图像。我能想到的唯一方法是radio_button_tag
在@image.each do |image|
循环中设置 a 。这没有实现form
标签。
我希望能够在按下单选按钮时:albumcover
将图像表的字段更改为图像的 id(得到该部分) 。
我尝试的代码如下。但是,当我加载页面时出现此错误。
错误
undefined method `ajaxUpdate_admin_album_image' for #<#<Class:0x102450300>:0x1021e94b8>`
jQuery (images.js.erb)
$(function(){
$('#albumcover_tag').bind('click', function(){
$.ajax({
type: 'PUT',
url: '<%= ajaxUpdate_admin_album_image(:admin, @album, @image) %>',
data: $('#albumcover_tag').val(),
}).success(function(){
alert("success");
});
});
$('.best_in_place').best_in_place();
});
路线
namespace :admin do
root :to => "dashboard#index"
resources :dashboard
resources :albums do
resources :images do
put :ajaxUpdate, :on => :collection
end
end
get "admin/album"
end
控制器
def ajaxUpdate
@album = Album.find(params[:album_id])
@image = @album.images.find(params[:albumcover])
if @image.update_attributes(params[:image])
flash[:notice] = "Successfully updated Image"
else
render "edit"
end
end
看法
<% if !@images.blank? %>
<% @images.each do |image| %>
<div class="item">
<div class="image-box">
<div class="source">
<%= image_tag image.source %>
</div>
</div>
<div class="info">
<div class="item-links">
<%= link_to "Edit", edit_admin_album_image_path(@album, image.id), :id => "edit"%>
<%= link_to "Delete",
admin_album_image_path(@album, image.id),
:class => "item-link delete-image",
:method => :delete,
:remote => true,
:confirm => "Are you sure?" %>
</div>
<%= label(:albumcover, 'Set as Album Cover ', :style => "float: left;") %>
<%= radio_button_tag (:albumcover, image.id, false, :id => :albumcover_tag) %> //The Relevant Code
</div>
</div>
<% end %>
<% else %>
<p class="alert">No images in this album</p>
<% end %>
任何帮助将不胜感激!