フォームを送信すると、次のエラーが表示されます: Missing template letsgos/create, application/create with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby]}
.
私が理解していないのは、 create のビューが のときに /create を探している理由ですfrom _form.html.erb
。/create ファイルを作成する必要はありません。ここで何か不足していますか?
letsgos_controller.rb:
before_action :signed_in_user, only: [:create, :destroy]
def create
@letsgo = current_user.letsgos.build(letsgo_params)
if @letsgo.save
flash[:success] = "Date posted!"
redirect_to root_url
end
def destroy
@letsgo.destroy
redirect_to root_url
end
ユーザーコントローラー:
def show
@user = User.find(params[:id])
@letsgos = @user.letsgos.paginate(page: params[:page])
@letsgo = current_user.letsgos.build if signed_in?'
end
letsgo.rb:
belongs_to :user
default_scope -> { order('created_at DESC') }
validates :content, presence: true, length: { maximum: 360 }
validates :tag, presence: true
validates :user_id, presence: true
end
/users/show.html.erb:
<% if @user.letsgos.any? %>
Dates (<%= @user.letsgos.count %>)
<%= render @letsgos %>
<%= will_paginate @letsgos %>
<% end %>
/letsgos/_form.html.erb
<%= form_for(@letsgo) do |f| %>
<div class="field">
<%= f.text_area :content, placeholder: "Propose new date..." %>
</div>
<%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>
/letsgos/home.html.erb:
<% if signed_in %>
<% render 'letsgos/form' %>