前提・実現したいこと
railsを使用し、ポートフォリオを作成中です。
userモデルと、companyモデルを作成しており、companyのみに記事が登録できるページへ遷移できる「ボタン」を表示させたいと思っています。
調べて自分なりにやってみましたが、userにも表示されてしまいます。
基礎的な所ですが、ご教示お願いします!
発生している問題・エラーメッセージ
userにも新規記事登録ボタンが表示される
該当のソースコード
views>articles>_article.html.erb
<%= link_to article_path(article) do %> <div class="card"> <% if article.eyecatch.attached? %> <div class="card_image"> <%= image_tag article.eyecatch %> </div> <% end %> <div class="card_content"> <div class="card_title"> <%= article.title %> </div> <div class="card_detail"> <div> <p><%= article.company.display_name %></p> <p><%= article.display_created_at %></p> </div> </div> </div> </div> <% if company_signed_in? %> <div class="card_heart"> <%= image_tag 'heart.svg' %> <span><%= article.like_count %></span> </div> <% end %> <% end %>
models>user.rb
class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable has_many :likes, dependent: :destroy has_many :favorite_articles, through: :likes, source: :article has_one :profile, dependent: :destroy delegate :birthday, :age, :gender, to: :profile, allow_nil: true def has_liked?(article) likes.exists?(article_id: article.id) end def display_name profile&.nickname || self.email.split('@').first end def prepare_profile profile || build_profile end def avatar_image if profile&.avatar&.attached? profile.avatar else 'default-avatar.png' end end end
model.company.rb
class Company < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable has_many :articles, dependent: :destroy def has_written?(article) articles.exists?(id: article.id) end def display_name self.email.split('@').first end end
試したこと
if文を使いcompany_signed_in?やcurrent_companyで試しましたができませんでした。
補足情報(FW/ツールのバージョンなど)
Ruby2.7.1
rails6.0.3
コードが端すぎて全体像が見えないのですけど、
そのときUserはどういう状態なのでしょう。
できればコードも全体像が分かる程度にご提示ください。
特に定義は提示されないと何も見えてきません。
追記・修正依頼ありがとうございます。
確かに全体像がわからなければ回答できないですね。
教えてくださりありがとうございます!
定義というと、userのmodelの中身で記述されてるものでしょうか?
不勉強で申し訳ありません
おおよそModelのものとconfigのものは「定義」ですね。
ありがとうございます!
ボタンを表示させたいcompanyのページを開いた時と、ボタンを表示させたくないuserのページを開いた時の、
ブラウザのアドレスバーに表示されているURLを張り付けてください。
それから、config/routes.rb も追記してください。
そうすれば、どのviewを見れば良いのかこちらで判断できると思います。
回答1件
あなたの回答
tips
プレビュー