【发布时间】:2012-03-14 02:29:16
【问题描述】:
我基本上是在尝试为我的 rails 应用程序创建一个文件管理器,类似于 WordPress 的“媒体”部分的功能。我目前有一个名为Asset 的模型,用户可以在那里上传各种图像。在其他各种模型中,我有一个图像字段,它只是一个文本字段。我希望当用户单击文本字段时,它将在模式窗口中打开一个“资产管理器”,其中包含Asset 中包含的所有图像。当用户点击其中一张图片时,它应该关闭模式并使用所选图片的 URL 填充文本字段。
我有一个名为 Events 的模型,其中包含我正在谈论的文本字段。在new 操作中,我响应 js,在其中我加载了一个包含模式窗口中所有资产的部分,就像我期望的那样。我唯一的问题是我通过$.getScript 调用执行此操作,并且我无法调用任何其他javascript 将图像url 加载回文本字段,我猜这是因为对象还不存在。无论如何,进入代码:
控制器
def new
@event = Event.new
@asset = Asset.all
end
respond_to do |f|
f.html
f.js
end
new.js
$('.acontainer').html('<%= render @asset %>');
page.js
//when a user clicks the image field, show the asset partial
$('.image-field').click(function() {
$.getScript('edit.js');
});
// when a user clicks an image, add it's src to the image field <-- does nothing
$('.actonainer img').click(function() {
$('.image-field').val($(this).attr('src'));
});
任何想法都将不胜感激,特别是如果有人知道更好的方法来做到这一点。 :-)
【问题讨论】:
标签: javascript ruby-on-rails partials file-manager