gpt4 book ai didi

ruby-on-rails - rails : Display user's liked post & own their posts on the same page

转载 作者:行者123 更新时间:2023-12-04 04:57:00 27 4
gpt4 key购买 nike

我对 Rails 还很陌生,而且我已经被这个问题困扰了几个小时。我正在尝试显示用户喜欢的帖子和用户的实际帖子。

使用我当前的代码,我收到此错误“# 的未定义方法`title'”,它是从这一行中提取的:“<%= link_to post.title, post %>”。

有人能解释一下我如何让它工作吗? (更多代码如下)

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

if @user
@posts = @user.posts.all + @user.likes.all
render actions: :show
@likes = @user.likes.all
else
render file: 'public/404', status: 404, formats: [:html]
end
end

这是我的路由文件:
resources :likes, only: [:create, :destroy]
resources :posts

devise_scope :user do
get 'register', to: 'devise/registrations#new'
get 'edit', to: 'devise/registrations#edit'
get 'login', to: 'devise/sessions#new'
get 'logout', to: 'devise/sessions#destroy'
end

这是“显示” View :
<% if @posts %>
<% @posts.each do |post| %>
<%= link_to post.title, post %>
<% end %>
<% end %>

" <%= link_to post.title, post %> display <%= post.inspect %> "这是结果
<Post id: 11, title: "testing123", user_id: 2, created_at: "2013-05-18 19:25:45", updated_at: "2013-05-18 19:25:45"> #<Like id: 23, post_id: 10, user_id: 2, created_at: "2013-05-18 21:39:17", updated_at: "2013-05-18 21:39:17">

当我只使用它时它有效 -> @posts = @user.posts.all但是当我使用它时问题就开始了 -> @posts = @user.posts.all + @user.likes.all
这给了我 "未定义的方法`title'"留言..

最佳答案

您可能想向用户模型添加一些内容...

class User < ActiveRecord::Base

has_many :likes
has_many :liked_posts, :through => :likes, :source => :post

...

end

然后,在您的 Controller 中,您可以执行此操作
@posts = @user.posts + @user.liked_posts 

关于ruby-on-rails - rails : Display user's liked post & own their posts on the same page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16631088/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com