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
Post a Comment