невозможно отобразить информацию о пользователе, если на его имени нажали - PullRequest
0 голосов
/ 30 сентября 2018

Я делаю твиттер-клон.в моем индексе твитов у меня есть имя пользователя, который твитнул рядом с их твитом.Я хочу, чтобы, когда вы нажимаете на имя, оно переходит на страницу их профиля.Однако в тот момент, когда я нажимаю на любое из имен пользователей, вы переходите в профиль текущего пользователя.Любой способ решить это?спасибо

<h1>TWEETS</h1>


<% if user_signed_in? %>
<%= simple_form_for [ @user ,@tweet], id: "form-submit" do |f| %>
   <%= f.input :content, label: "Tweet" %>
   <%= f.button :submit, class: "btn btn-danger" %>
   <% end %>
<% end %>
   <br>

<% @tweets.each do |tweet|  %>
  <ul>
    <li>
      <%= tweet.created_at.strftime("%B %d %Y, %l:%M%P") %> <br>
      <%= tweet.content %>

      <%= link_to tweet.user.username, user_path(@user) %>
    </li>
  </ul>
<% end %>

class TweetsController < ApplicationController
  # before_action :authenticate_user!, :except => [:index, :show]

   def index
    @tweets = Tweet.all.order("created_at DESC")
    @tweet = Tweet.new
    @user = current_user
  end

  def show
    @tweet = Tweet.find(params[:id])
  end

  def new
    # @tweet = Tweet.new
  end

  def create
    # @user = current_user
    @user = User.find(params[:user_id])
    @tweet = Tweet.new(tweet_params)
    @tweet.user = @user
    if @tweet.save
    redirect_to user_tweets_path
  end
  end

  def edit
    @tweet = Tweet.find(params[:id])
  end

  def update
    @tweet = Tweet.find(params[:id])
    @tweet.update(tweet_params)
    redirect_to tweets_path
  end

  private
  def tweet_params
    params.require(:tweet).permit(:content)
  end
end

class UsersController < ApplicationController

  def show
    @user = User.find(params[:id])
  end
end

<h1>Profile of <%= @user.username  %> </h1>

1 Ответ

0 голосов
/ 30 сентября 2018

Вы ссылаетесь не на того пользователя в вашем списке.

  # change this, your @user is defined in controller as current_user
  <%= link_to tweet.user.username, user_path(@user) %>

  # to
  <%= link_to tweet.user.username, user_path(tweet.user) %>

Примечание: вам также не нужно устанавливать @user, если вы устанавливаете вспомогательный метод уровня приложения для current_user

...