我基本上是在尝试为我的 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
新的.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'));
});
任何想法都将不胜感激,特别是如果有人知道更好的方法来做到这一点。:-)