我已从视图中删除了一个ID,但我的coffeescript文件响应就好像我没有。当我尝试应用新ID时,它不会响应新ID,但仍会响应旧的(不再存在)ID。
我尝试过rake assets:precompile
和rake assets:clean
,但无济于事。
一个线索,可能是:coffeescript在lists.coffee中,而视图是devise / registrations / new.html.erb(不是Lists模型的一部分)。我正在使用lists.coffee,因为该操作依赖于该文件中写入的函数,我必须在users.coffee中复制。
我不认为这个问题与把错误的文件中的咖啡因有关,因为我在其他情况下已经这样做了,并且没事。此外,它无法解释为什么它会响应不再存在的ID。
请帮忙!
编辑(代码示例和进一步说明):
lists.coffee:
$ ->
...
$('#user_settings_sex').change ->
...many actions...
设计/注册/ new.html.erb
<%= n.select(:sex, [['Male', 'm'],['Female', 'f'],['Decline to say', 'd']],
:id => "test-sex",
:include_blank => true,
:allow_blank => false,
:selected => params[:sex]) %>
即使#user_settings_sex不在视图中,coffeescript也会响应此ID并仅响应此ID。当我使用user_settings_sex作为coffeescript中的id时,一切正常。在视图中使用哪个ID没有区别(这就是为什么ID目前是#test-sex,因为我正在尝试)。
答案 0 :(得分:1)
这与coffeescript无关:如果你查看生成的html,你会看到select元素没有id test-sex
。
这是因为select
方法需要两个选项哈希值::selected
和:include_blank
等选项以及适用于select元素的html选项的第二个哈希值。设置该元素的id或类的事情需要在第二个哈希中,即。
n.select(:sex,[['Male', 'm'],['Female', 'f'],['Decline to say', 'd']],
{
:include_blank => true,
:allow_blank => false,
:selected => params[:sex]
}, {
:id => "test-sex"
})