[解決済み] missing template エラーを修正するには?
2022-03-04 02:51:08
質問
ユーザーページがあり、ユーザーが告知記事を作成できるようになっているウェブサイトを作っています。
ホームページから新規に告知記事を作成しようとすると、以下のようなエラーがポップアップします。
Template is missing
Missing template announcements/create, application/create with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee]}. Searched in: * ".../app/views"
その場所にcreate.html.erbを作成すると、いつものようにフォームがfalseを返します。
ユーザーページ(/app/view/users/show.html.erb)です。
<% provide(:title, 'Admin Page') %>
<% if signed_in? %>
<div class="container">
<%= link_to "Sign out", signout_path, method: "delete" %>
<br />
<% if @announcements.any? %>
<h3>Announcements (<%= @announcements.count %>)</h3>
<ol>
<%= render @announcements %>
</ol>
<%= will_paginate @announcements %>
<% end %>
<%= render 'shared/announcement_form' %>
</div>
<% else %>
<script type="text/javascript"> window.location.href= '<%= signin_path %>' </script>
<% end %>
shared/_announcement_form.html.erb。
<%= form_for(@announcement) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div class="field">
<%= f.text_area :title, placeholder: "Compose new title..." %>
</div>
<div class="field">
<%= f.text_area :content, placeholder: "Compose new announcement..." %>
</div>
<%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>
UsersControllerです。
class UsersController < ApplicationController
def new
end
def show
@user = User.find(params[:id])
@announcement = current_user.announcements.build if signed_in?
@announcements = @user.announcements.paginate(:page => params[:a_page], :per_page => 10)
end
end
AnnouncementsControllerです。
class AnnouncementsController < ApplicationController
before_action :signed_in_user, only: [:create, :destroy]
def create
@announcement = current_user.announcements.build(announcement_params)
if @announcement.save
flash[:success] = "Announcement created!"
redirect_to root_url
else
flash[:error] = "Failed to create announcement!"
end
end
def destroy
end
private
def announcement_params
params.require(:announcement).permit(:content)
params.require(:announcement).permit(:title)
end
end
コンソールで手動でアナウンスを作成できることを確認しました。何が間違っているのでしょうか?
解決方法を教えてください。
もし
@announcement
での保存に失敗しました。
AnnouncementsController#create
の場合、アクションのデフォルトビューをレンダリングします。
create.html.erb
が存在しない。そのため、ご覧のようなエラーになります。
通常、createアクションは、フォームを含むテンプレートを再レンダリングします。通常、それは
new
アクションを追加することになります。
render "new"
を
else
の部分を
create
アクションを実行します。
しかし、あなたの場合、それが
"shared/announcements_form"
パーシャルを追加することになります。
render "shared/announcements_form"
をあなたの
create
アクションを使用します。
関連
-
[解決済み] pg gem をインストールしようとすると 'libpq-fe.h' ヘッダが見つからない
-
[解決済み] デバイスを使用する現在のユーザーメソッド
-
[解決済み] Rubyで変数をインクリメントする [重複]。
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み] Webフォームのフィールド/入力タグでブラウザのオートコンプリートを無効にするにはどうすればよいですか?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] チェックボックスとそのラベルをクロスブラウザーで一貫して揃える方法
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】取得中。「プロジェクトのクローンとマイグレート後に、「マイグレーションは保留中です。この問題を解決するには 'bin/rake db:migrate RAILS_ENV=development' を実行してください。
-
[解決済み】Rails 4 RoutingError: ルートが一致しない[POST]。
-
[解決済み] heroku push rejected, failed to compile Ruby/rails app
-
[解決済み] 該当するルートがない [GET] "demo/hello"
-
[解決済み] Ruby on rails "No route matches" (ルートに一致するものがない)。
-
[解決済み] PG::ConnectionBad - サーバーに接続できませんでした。接続が拒否されました。
-
[解決済み] Errno::EACCESS: パーミッションが拒否された @ dir_s_mkdir
-
[解決済み] Paramが無いか、値が空である。ParameterMissing in ResultsController#update
-
[解決済み] nil:NilClass の未定義メソッド `each' - しかし、なぜ?
-
[解決済み] 属性を割り当てる場合、引数としてハッシュを渡す必要がある