ruby on rails - undefined method user_path' form_for -
i have userscontroller , has below code
def sign_up @user = user.new end
and view page has
<div class="col-md-6 col-md-offset-3"> <%= form_for @user |f| %> <%= f.label :first_name%> <%= f.text_field :first_name %> <%= f.label :last_name %> <%= f.text_field :last_name %> <%= f.submit "register", class: 'btn btn-primary'%> <% end %> </div>
my routes.rb file contains following entry
'signup' => 'users#sign_up'
but when submit form, says
actionview::template::error (undefined method `users_path' #<#<class:0x00000004d91490>:0x00000004d90220>)
why throw error , need explicity point url in form_for?? why so??
change routes to:
resources :users, only: [:new, :create], path_names: {new: 'sign_up'}
and rename sign_up
action new
. reason getting error rails trying guess correct url given resource. since have passed @user
, instance of user
class, try call "#{@user.class.model_name.route_key}_path
key, results in error got.
to solve issue need either make routes define users_path
or need specify url directly using url
option. users_path
can defined either index
or create
action, above solution work (and not create remaining crud routes, yey!)
Comments
Post a Comment