You might be happier using Ruby to map your data to JSON, and then feeding
that to your JavaScript, rather than using Ruby to dynamically generate
JavaScript.
For example, if you wanted to map the data directly in the view, could do
so like this.
- mapped_faculties = @faculties.inject({}) { |a, fac| a[fac.id] = {} }
:javascript
var departments = #{mapped_faculties.to_json};
In general, I would recommend doing these types of transformations in the
controller rather than in the view itself, but the principle is the same.
On Tue, May 21, 2013 at 11:29 AM, Duncan Beevers <[email protected]> wrote:
> You're in a javascript filter. The code that you think is iterating
> through @faculties is actually just being inlined as javascript into a
> script tag.
>
>
> On Tue, May 21, 2013 at 11:22 AM, Les Nightingill
> <[email protected]>wrote:
>
>> I have this in a rails view file:
>>
>> ...
>> :javascript
>> var departments = new Object()
>> - @faculties.each do |fac|
>> departments['#{ fac.id }']= new Object()
>>
>> And the error message I get is:
>>
>> undefined local variable or method `fac' for
>> #<#<Class:0x00000104e1b3d8>:0x000001074bb420>
>>
>> I'm clearly missing something very basic. Can anyone see what the problem
>> is, please. Thanks in advance.
>>
>> Les
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Haml" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/haml?hl=en.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>
--
You received this message because you are subscribed to the Google Groups
"Haml" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/haml?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.