cherrypick
cherrypick

Reputation: 91

Ruby on Rails Error - NoMethodError in Admin::Store#new

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

Answers (2)

akbarbin
akbarbin

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

user3506853
user3506853

Reputation: 814

You need to give namespace as well:-

<%= simple_form_for ([:admin,@store]) do |form| %>
<% end %>

Upvotes: 0

Related Questions