Reputation: 91
Ruby on Rails Error - NoMethodError in Admin::Store#new
Here is my code and project structure. what is wrong with my code?
I generated this command "Rails generate controller admin/store"
generated controller
Controllers
/home/rok/Development/Pan/app/controllers/admin/store_controller.rb
class Admin::StoreController < ApplicationController
def new
@store = Store.new
#render "admin/store/new"
end
end
Views
/home/rok/Development/Pan/app/views/admin/store/new.thml.erb
<h1>xx </h1>
<p> xx </p>
<%= simple_form_for (@store) do |form| %>
<div class="form-inputs">
<%= form.input :store_name, label: "xx" %>
<%= form.input :store_address, label: "xx" %>
<%= form.input :store_phone, label: "xx" %>
<%= form.input :store_logitude, label: "xx" %>
<%= form.input :store_latitude, label: "xx" %>
</div>
<div class="form-actions">
<%= form.button :submit %>
</div>
<% end %>
Models
/home/rok/Development/Pan/app/models/store.rb
class Store < ActiveRecord::Base
validates :store_name, presence: true
validates :store_address, presence: true
validates :store_phone, presence: true
validates :store_longitude, presence: true
validates :store_latitude, presence: true
end
NoMethodError in Admin::Store#new
Showing /home/rok/Development/Pan/app/views/admin/store/new.html.erb
where line #4 raised:
undefined method `stores_path' for #<#:0x007f627c4ade00> Extracted source (around line #4): 2 3 4 5 6 7
<p> xx </p>
<%= simple_form_for (@store) do |form| %>
<div class="form-inputs">
<%= form.input :store_name, label: "xx" %>
Rails.root: /home/rok/Development/Pan
What is wrong?
Upvotes: 0
Views: 530
Reputation: 5105
You'd better to change your name controller into pluralize
rails generate controller admin/stores
routes.rb
You have to do this:
namespace :admin do
resources :stores
end
Then, in your form write it:
<%= simple_form_for ([:admin, @store]) do |form| %>
<% end %>
I hope this help you.
Upvotes: 0
Reputation: 814
You need to give namespace as well:-
<%= simple_form_for ([:admin,@store]) do |form| %>
<% end %>
Upvotes: 0