当您应该在Rails应用程序中使用控制器中的变量时,将javascript代码放在何处?
通常,我们将javascript文件放在app/assets/javascripts文件夹中。 但是,如果我们需要使用controller instance_val,我们应该将这个javascript文件放在前面提到的文件夹中,还是将javascript代码作为一个片段放在views文件中呢 我尝试向视图添加滑块。我用的是jQueryUI。 这是我的密码:当您应该在Rails应用程序中使用控制器中的变量时,将javascript代码放在何处?,javascript,ruby-on-rails,Javascript,Ruby On Rails,通常,我们将javascript文件放在app/assets/javascripts文件夹中。 但是,如果我们需要使用controller instance_val,我们应该将这个javascript文件放在前面提到的文件夹中,还是将javascript代码作为一个片段放在views文件中呢 我尝试向视图添加滑块。我用的是jQueryUI。 这是我的密码: $ -> $("#slider").slider( range: true, min: 0, max: <%= @t.am
$ ->
$("#slider").slider(
range: true,
min: 0,
max: <%= @t.amount %>,
values: [0, <%= @t.amount / 2 %>],
slide: (event, ui)->
$("#range_from").val(ui.values[0])
$("#range_to").val(ui.values[1])
)
$->
$(“#滑块”).滑块(
范围:对,
分:0,,
马克斯:,
值:[0,],
幻灯片:(事件,用户界面)->
$(“#range_from”).val(ui.values[0])
$(“#范围从u到”).val(ui.values[1])
)
我试图在js文件中使用@t,但是我得到了一个Nil类错误。
我不想为了一个好的文件组织而直接将此代码放在视图文件中。
有没有更好的方法来实现这段代码?每种方法都可以
你能告诉我们你想做什么吗?举个例子也许是为了说明问题。您不应该在任何地方公开控制器实例变量。您应该将它们作为本地对象传递给视图。但是既然你谈到了
app/assets/javascripts
,那么一个示例代码片段肯定会更好。我们一直在使用Gem
:javascript
$("#slider").slider(
range: true,
min: 0,
max: <%= @t.amount %>,
values: [0, <%= @t.amount / 2 %>],
slide: (event, ui)->
$("#range_from").val(ui.values[0])
$("#range_to").val(ui.values[1])
)
<div class="info" data-target="<%= @t %>"></div>
t = $(".info").attr("data-target")
$("#slider").slider(
range: true,
min: 0,
max: t,
values: [0, t/2],
slide: (event, ui)->
$("#range_from").val(ui.values[0])
$("#range_to").val(ui.values[1])
)