我想在我的:javascript_tag中创建RoR实例变量,并且我想要渲染我的部分。
'#{@workss}=' + all_filter_record;
console.log('#{@workss}');
html_data = "#{j render :partial => 'other_portfolio', @workss} }";
$("#other_portfolio").html(html_data)
我尝试了很多东西,但它不起作用
答案 0 :(得分:1)
因为你提到:javascript
我假设你正在使用haml来渲染视图。
通常你会在控制器中设置@works
,然后你的视图代码就是
:javascript
html_data = "#{j render :partial => 'other_portfolio', @works} }";
$("#other_portfolio").html(html_data)
另请注意,如果您使用此视图回复rails json电话(例如link_to :remote => true
),则应使用:plain
标记。
如果您真的想在视图中设置变量,那肯定是可能的,但不在:javascript
或:plain
标记内,但您可以使用它。
像这样:
- works = all_filter_record
:javascript
html_data = "#{j render :partial => 'other_portfolio', works} }";
$("#other_portfolio").html(html_data)
注意虽然可以在视图中设置变量,但是在视图中需要很多代码被认为是不好的形式,并且设置实例变量更是如此(设置实例变量建议您将在更多视图中使用它/ partials,但是你怎么知道数据的设置位置??)。因此,如果您需要一个实例变量:在控制器中设置它。
答案 1 :(得分:0)
直接在视图中使用javascript代码部分不是最好的方法。最好尝试在自己的资产文件中分离javascript逻辑。看看:https://github.com/gazay/gon