Forum: Ruby on Rails undefined method Rails 4

2eed0dd2deef77f8d132501d1e8e28ea?d=identicon&s=25 Jose Urquidi (urcoconc)
on 2013-10-22 22:03
Good Day, i'm having a trouble with the routes in Ruby on Rails 4


Error:

undefined method `routes_path'


View:

<h1>Load data</h1>
    <div class="row">
    <div class="span6 offset3">
    <%= form_for @route, :html => { :multipart => true } do %>
        <%= hidden_field_tag 'current_user', @current_user %>
        <%= file_field_tag :file %>
        <%= submit_tag "Import", style: 'margin-top: -10px', class: "btn
btn-primary" %>
    <% end %>
</div>
</div>


Controller:

def new
    @route = current_user.build_route
end

def create
     nil_flag = Route.import(params[:file], current_user)
    if nil_flag == 1
      flash[:success] = "Data created."
      redirect_to route_path(current_user)
    else
      flash[:error] = "Error"
      redirect_to load_data_path
    end
end

Model:

def self.import(file, current_user)
   @user = current_user
   @route = @user.build_route
   @nil_flag = 0

   File.open(file.path, 'r') do |f|
   .
   .
   .
    #etc
end



Routes

match '/load_data', to: 'routes#new', via: 'get'


Views, controller and model are named "Route"

Is a problem with the route in the view or something else? Thank you
2a514760da1ec88f68c78ecd538f92dc?d=identicon&s=25 BalaRaju Vankala (Guest)
on 2013-10-23 12:24
(Received via mailing list)
Routes

match '/load_data', to: 'routes#new', via: 'get'

I think the problem in your routes file.
Remove this line "*match '/load_data', to: 'routes#new', via: 'get*' "
and add this line-    *"resources  :routes" *.



On Wed, Oct 23, 2013 at 1:33 AM, Jose Urquidi <lists@ruby-forum.com>
wrote:

> <h1>Load data</h1>
>
>       flash[:success] = "Data created."
>    @user = current_user
>
> --
> .
> For more options, visit https://groups.google.com/groups/opt_out.
>



--
C550205f7dc245a66fa08b2cb0af0f00?d=identicon&s=25 Fahad Idrees (fahadgudu)
on 2013-10-23 12:55
(Received via mailing list)
Just as a first impression, without looking into it in detail - you may
have trouble using routes as a class name, it's already a class name
under
ActionDispatch.

However, I think your problem is actually your route:

match '/load_data', to: 'routes#new', via: 'get'
This isn't a resource route, it won't generate the kind of functionality
that allows you to use the form tag syntax <%= form_for @route...

Either define routes as a resource:

resources :routes
Or define a url in your form:

<%= form_for @route, :url => some_url, :html => { :multipart => true }
do
%>


On Wed, Oct 23, 2013 at 3:22 PM, BalaRaju Vankala
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.