红宝石2.0.0至控制器,导轨4.0.3传递实例变量从视图通过JavaScript
时选择年被触发时,JavaScript的当前从视图到经过实例变量(@car)的名称控制器作为字符串。我需要传递一个对实例变量的引用,而不仅仅是字符串名称。这可能吗?我会很感激帮助。
编辑:我已经尝试更换汽车的引用如下,但我收到语法错误。
var car = $("#<%= @car %>");
Error: Syntax error, unrecognized expression: #<%= @car %>
的观点是:
<div class="span8">
<%= simple_form_for [:admin, @car],
defaults: {label: false},
html: {id: 'new_admin_car', class: 'form-vertical'},
wrapper: :vertical_form,
wrapper_mappings: {
check_boxes: :vertical_radio_and_checkboxes,
radio_buttons: :vertical_radio_and_checkboxes,
file: :vertical_file_input,
boolean: :vertical_boolean
} do |f| %>
<%= f.input(:stock_number, {input_html: {form: 'new_admin_car', car: @car}, autocomplete: :off, placeholder: 'Stock number?'}) %>
<%= f.input(:ymm_year_id, {input_html: {form: 'new_admin_car', car: @car}, collection: YmmYear.all.order("year desc").collect{|c| [c.year, c.id]}, prompt: "Year?"}) %>
<%= render partial: "makes", locals: {form: 'new_admin_car', car: @car} %>
<%= render partial: "models", locals: {form: 'new_admin_car', car: @car} %>
<input type="submit" form="new_admin_car" value="Create Car" class="btn btn-default btn btn-primary">
<% end %>
</div>
当前的脚本是:
// when the #year field changes
$("#car_ymm_year_id").change(function() {
// make a GET call and replace the content
// First select identifies what has been selected, or fired
var year = $('select#car_ymm_year_id :selected').val();
// Pull the variables from the input_html tag
var form = $('select#car_ymm_year_id').attr("form");
var car = $('select#car_ymm_year_id').attr("car");
// Routes to the controller action
$.post('/admin/cars/make_list/',
{
form: form,
year: year,
car: car
},
function (data) {
$("#car_ymm_make_id").html(data);
});
return false;
});
你的意思是从控制器传递var来查看?或者是你在JS中进行GET调用的地方? – Aryess 2014-08-28 09:41:36
@car通过常规方法来自控制器的视图。当年份发生变化时,JS会触发并将选定年份传回给控制器,以便它可以构建该年份的制造清单。当火灾发生时,我需要通过JavaScript从视图传递回控制器的汽车实例。 – 2014-08-28 09:48:22
@Aessess我认为我的评论是错误的。往上看。 – 2014-08-28 10:04:58