ActiveRecord::RecordNotFound in TweetsController#show
ActiveRecord::RecordNotFound in TweetsController#show
Couldn't find Tweet with 'id'=show
下記のエラーの解消を行いたいです。
例)
Ruby on RailsでQiitaのようなWebアプリをつくっています。
記事を投稿する機能の実装中にエラーが発生しました。
解決方法を教えて下さい。
発生している問題・エラー
Couldn't find Tweet with 'id'=show
該当するソースコード
tweets_controller.rb
class TweetsController < ApplicationController
before_action :authenticate_user!, only: [:new]
before_action :set_tweet, only: [:show]
def show
end
private
def tweet_params
params.require(:tweet).permit(:image, :text, :brand_id, :camera_id, :sensor_id, :resolution_id, :price).merge(user_id: current_user.id)
end
def set_tweet
@tweet = Tweet.find(params[:id])
end
end
show.html.erb
<div>
<ul class='item-list'>
<%if @tweets.present? %>
<% @tweets.each do |tweet| %>
<li class='list'>
<div class='user_name'>
<%= link_to(tweet.user.nickname, "/users/#{tweet.user.id}") %>
</div>
<%= link_to(tweet_path(tweet.id)) do %>
<div class='item-img-content'>
<%= image_tag tweet.image, class: 'item-img' %>
<div class='item-info'>
<h3>
Camera's brand: <%= tweet.brand.name %>
</h3>
<h3>
Camera's model: <%= tweet.camera.name %>
</h3>
<h3>
Sensor size: <%= tweet.sensor.name %>
</h3>
<h3>
Resolution: <%= tweet.resolution.name %>
</h3>
<h3>
price: <%= tweet.price %>yen
</h3>
<h3>
Text: <%= tweet.text %>
</h3>
</div>
</div>
<% end %>
</li>
<% end %>
<% else %>
<li class='list'>
<%= link_to '#' do %>
<%= image_tag "https://tech-master.s3.amazonaws.com/uploads/curriculums/images/Rails1-4/sample.jpg", class: "item-img" %>
<div class='item-info'>
<h3 class='item-name'>
Post it!!
</h3>
</div>
<% end %>
</li>
<% end %>
</ul>
</div>
<div class="tweet-show">
<div class="tweet-box">
<div class="item-img-content">
<%= image_tag @tweet.image ,class:"item-box-img" %>
</div>
<div class="item-price-box">
<span class="item-price">
<%= @tweet.price %>円
</span>
</div>
<% if user_signed_in? && @tweet.purchase.nil? %>
<% if current_user.id == @tweet.user_id %>
<%= link_to 'edit', edit_tweet_path(@tweet.id), method: :get, class: "tweet-red-btn" %>
<p class="or-text">or</p>
<%= link_to 'delete', "/tweets/#{@tweet.id}", method: :delete, class:"tweet-destroy" %>
<% else %>
<%= link_to "purchase", tweet_purchases_path(@tweet.id), class:"item-red-btn"%>
<% end %>
<% end %>
</div>
routes.rb
Rails.application.routes.draw do
devise_for :users
root to: 'tweets#index'
resources :tweets, only: [:index, :new, :create, :show, :edit, :update] do
end
end
どういったことが行いたいか
トップページから投稿一覧ページを表示したいです。
エラーの意味はわかるのですが、どうしたらエラーが解消されるかが全然わからず手が止まってしまっています。わかる方がいたら教えていただけると幸いです。
0