Todoアプリを作っています。
$ rails g model List name:string description:text
で作成したデーターに
$ rails g model Item name:string list:references
をセカンドモデルとして入れました。
Itemの作成や追加、削除はできましたが編集ができません。(どうしても新規としてとらえられてしまいます)
該当のソースコード
edit.htm.erb
<h2>itemの編集</h2> <%= form_for [@list, @list.items.build] do |f| %> <%= f.text_field :name %> <%= f.submit %> <% end %>
items_controller.rb
class ItemsController < ApplicationController def edit @list = List.find params[:list_id] end def update @list = List.find(params[:list_id]) @item = @list.items. find params[:list_id] if @ltem.update(ltem_params) redirect_to lists_path else redirect_to edit_list_path(item.list, item) end end def create @list = List.find params[:list_id] @list.items.create(item_params) redirect_to list_path (@list) end def item_params params.require(:item).permit(:name) end def destroy @list = List.find params[:list_id] @item = @list.items. find params[:id] @item.destroy redirect_to list_path(@list) end end
routes.rb
Rails.application.routes.draw do devise_for :users get 'welcome/index' root 'welcome#index' resources :lists do resources :items end # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html end
Rails3週間目の初学者です。
質問のしかたもままならぬ状態ですが、他に調べるべきファイルがあれば教えてください。
よろしくお願いいたします。
edit.html.erb に飛ぶ前の show.html.erb です。
show.html.erb
<h2><%= @list.name %></h2> <p><%= @list.description %></P> <hr> <% @list.items.each do |item| %> <%= item.name %> <%= link_to "編集", edit_list_item_path(item.list, item) %> <%= link_to "削除", [item.list, item], method: :delete, data: {confirm: "本当によろしいですか?"} %> <br> <% end %>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/20 08:31
2020/07/20 08:55