ruby on rails - How do I create a new/create action for items? -


i working on rails assignment asks create list of items. created controller , model item, still having trouble. keep receiving following error:

undefined method `items_path'  

here of code:

class itemscontroller < applicationcontroller   def new     @item = item.new   end    def create     @item = item.new(params.require(:item).permit(:name))      if @item.save        flash[:notice] = "item saved."        redirect_to @item      else        flash[:error] = "there error saving item. please try again."        render :new      end    end end 

items model:

class item < activerecord::base   belongs_to :user end 

new.html.erb in items

class item < activerecord::base   belongs_to :user end 

routes.rb:

rails.application.routes.draw   devise_for :users   resources :users     resources :items, only: [:new, :create]   end    'welcome/index'   root :to => 'welcome#index' end 

item.html.erb

<%= form_for @item |f| %>    <%= f.label :name %>    <%= f.text_field :name %>     <%= f.submit "save" %> <% end %> 

resources :users     resources :items, only: [:new, :create] end 

this nest items route inside user. check rake routes , not items_path

you have define resource :items items_path

so if want use nested routes have update form , controller , if not routes resource :items

<%= form_for [@user, @item] |f| %>    <%= f.label :name %>    <%= f.text_field :name %>     <%= f.submit "save" %> <% end %> 

and controller

def new     @item = item.new     @user = current_user end 

Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -