Try `app.root_path`.

On Thu, May 31, 2012 at 5:19 PM, Rodrigo Rosenfeld Rosas <[email protected]
> wrote:

>  Em 31-05-2012 17:11, Steve Schwartz escreveu:
>
> There are a couple gems and projects that do this:
>
>  * https://github.com/railsware/js-routes
> * http://millermedeiros.github.com/crossroads.js/
>
>  I think this is likely outside the scope of rails core, given that most
> people doing ajax requests will be using the jquery-ujs or prototype-ujs
> helpers.
>
>
> I don't understand how is jquery-ujs related to this issue.
>
>
>  One of the issues why I would personally not use this is because, in
> order for it to work, you need to populate your JS with a list of all
> available routes throughout your app. For my own apps, I'd rather not have
> a list of all the applications' routes in plain text ready to be exploited.
>
>
> I agree. I'm not suggesting that all routes should be exported, but I'd
> like to be able to easily decide which ones to export.
>
>
>  Sure, everything is locked-down and access-controlled, but I still don't
> necessarily want some random visitor knowing that registered group
> supervisors moderate their group's content via this URL, and approve
> members via that URL. And again, all of this could be handled by only
> serving specific JS URL helpers to specific users, but it ends up creating
> more work than it saves.
>
>
> I'm not sure if you have a proper idea on how much saving is that...
>
> Even if the idea of exporting the routes to a JavaScript files is not
> accepted, at least it should be easier to use the routes from an ERB asset.
>
> "Rails.application.routes.url_helpers.send(:products_path)" is almost the
> same as an unsupported operation...
>
> Kind regards,
> Rodrigo.
>
>
>
>  On Thursday, May 31, 2012 at 9:10 AM, Rodrigo Rosenfeld Rosas wrote:
>
>   Are there any reasons why Rails doesn't have any route helpers
> available
> for the JS/CS assets?
>
>  We're doing more and more client-side code and it is very likely that
> you'll need to do something like "$.post products_path, params"
> somewhere in your code.
>
>  Currently for doing that you'd need to create a file like
> asset.js.coffee.erb and then do something like:
>
>  $.post <%= Rails.application.routes.url_helpers.send(:products_path) %>,
> params
>
>  This is not only ugly and impractical, but I also don't want my files to
> be processed with ERB. This is not even possible inside my ECO templates.
>
>  So I decided a while back to create a routes.js.coffee.erb to export my
> named routes in some way to my other scripts. But as I needed more and
> more features it got a lot messy now:
>
>  <% h = Rails.application.routes.url_helpers
>  {
>  sections_json: :json, fields_from_parent: :json_id, move_field: :json,
>  field: :json_id, field_save: :json, remove_field: :html_id,
>  field_aggregates_autocomplete: [:json_id, :data_type],
>  field_dependents_autocomplete: :json_id,
>  field_set_aggregator: [:html_id, :aggregator_id],
>  field_remove_aggregate: :html_id,
>  field_add_dependent: [:html_id, :dependent_id],
>  field_remove_dependent: [:html_id, :dependent_id],
>  section_update: :html_id, section_create: :json,
>  }.each do |named_route, options|
>  options = Array(options)
>  format = options.shift
>  format_options = {}
>  format_options[:format] = :json if format =~ /json/
>  options.push format_options
>  if format =~ /_id/ %>
>  window.<%= named_route %>_path = (id, options)->
>  path = "<%= h.send :"#{named_route}_path", '999', *options
> %>".replace('999', id)
> <% if options.size > 1 %>
>  path = path.replace(k, v) for k, v of options
>  path
> <% end %>
> <% else %>
>  window.<%= named_route %>_path = '<%= h.send
> :"#{named_route}_path", format_options %>'
> <% end %>
> <% end %>
>
>
>  See how to maintain something like this can become complicated?
>
>  Couldn't Rails provide an easier built-in way for the named routes to be
> easily exported as JS functions/variables?
>
>  This way, instead of each application define their own helpers for such
> a common requirement, an official way would exist and developers moving
> their jobs or projects would be aware where to look for.
>
>  I just feel there is some convention missing here.
>
>  Cheers,
> Rodrigo.
>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Core" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/rubyonrails-core?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en.

Reply via email to