我正在尝试使用Ajax渲染部分,我使用class TransportationController < ApplicationController
respond_to :html, :js, :json
将相关的Javascript对象发送到部分。不幸的是,我在发送对象时遇到了问题而且我一直收到错误&#34;未定义的局部变量&#34;。
控制器:
function getRates(){
$.ajax( {
...
(code cut out that's irrelevant to question, but this request succeeds)
...
success: function( json ) {
json.prices.forEach(function(price){
$("#my_list").append("<%= j render :partial => 'my_item', :locals => {price: price} %>");
});
....
};
create.js.erb
....
<h1><%= price.display_name %></h1>
....
_my_item.html.erb :
boost::is_convertible
错误:( NameError - 未定义的局部变量或方法`价格&#39;)
任何帮助解决这个问题将不胜感激!我以为我正确地做到了
答案 0 :(得分:2)
没有必要在Ajax成功块中定义html视图,你可以让你的.js文件与控制器动作相关联,这将呈现部分html.Hope它将适合你。
答案 1 :(得分:0)
<强> create.js.erb 强> 您可以更改并添加到此:
function getRates(){
$.ajax( {
...
(code cut out that's irrelevant to question, but this request succeeds)
...
success: function( json ) {
json.prices.forEach(function(price){
$("#my_list").append("<%= j render :partial => 'my_item'");
$("h1.price-display-name").last().text(price.display_name);
});
....
};
_my_item.html.erb:添加新的属性类
....
<h1 class="price-display-name"></h1>
....
答案 2 :(得分:0)
可能是这样的
function getRates(){
$.ajax( {
...
(code cut out that's irrelevant to question, but this request succeeds)
...
success: function( json ) {
json.prices.forEach(function(price){
$("#my_list").append("<%= escape_javascript render(:partial => 'my_item', :locals => {:price => price}) %>");
});
....
};
答案 3 :(得分:0)