Rails->Ruby
# asset/pop.js
$("#create").on("click", function(){
# do something that 'remote => true' can't do
$.get("/blogs/new");
});
# new.js.erb
$('#popout').html("<%= j render("pop_form") %>");
这样说法,我就可以在使用change
等等事件都使用这个方法了,如:
$("input").change(function(){
$.get("/blogs");
})
#index.js.erb
...
这样是可行的吧? 用 js 拼 html 真的太恶心了。
#8 楼 @tyaccp_guojian 我想的和 4 楼想的那样,因为先过 erb 的,所以貌似不好实现。
问题是这样:
在 js 和 css 里不可以直接通过文件地址引入图片,例如/assets/image.jpg
因为图片最后的名字是image_asfsafsadasb.jpg
会生成一串随机串在后面,这就导致,无法直接在 js 里面查入一个img
的tag
。因为:
$("body").append('<img src="/assets/image.jpg" />')
这样是读不出图片的,需要:
$("body").append('<img src="<%= asset_path(”image.jpg") />')
所以我想实现一个效果,例如点击就往 body 插入一个图片,而图片的名字是image_a
,image_b
,image_c
而显示 a 还是 b,c,根据我点击的按钮里的data-name
属性决定。
所以:
$("body").append('<img src="/assets/image_' + $(this).data('name') + '.jpg" />')
是这样形式来正常展示的。
#6 楼 @tyaccp_guojian #5 楼 @miclle 这么说法,本来一个:
$("body").append('<img src="assets/the_page_' + $(this).attr("data-name") + '.jpg" />')
javascript 很方便处理的问题,被 Asset Pipeline 弄的很复杂。如果不用asset_path
就找不到图片,如果实在没有好办法的话,最好的办法估计也就是把图片做成 css 的background-image
了吧!
#2 楼 @tyaccp_guojian 这个写法不知道可以不可以,但是关键是 xxx,应该是怎么用$(this).attr("data-name")
来代替?因为是 js 代码放到<%= %>
里。
Rails also makes a counter variable available within a partial called by the collection, named after the member of the collection followed by _counter. For example, if you're rendering @products, within the partial you can refer to product_counter to tell you how many times the partial has been rendered. This does not work in conjunction with the as: :value option.
根据这里说的不可以使用 as,但是我把 as 去掉了,还是不行。
#5 楼 @ShiningRay 我觉得有这样的功能就好,找了一下,貌似 SQL 就没有这样的功能了。
#3 楼 @zj0713001 但是亚马逊之类的,就是在没有登录的情况下加入购物车,然后重新开浏览器还是存在购物车里的。估计就是和书里讲的一样,只不过是用了 cookies 而已吧?