私はレールにかなり慣れていないので、この問題に数時間悩まされています。ユーザーが気に入った投稿とユーザーの実際の投稿を表示しようとしています。
現在のコードでは、「 # のメソッド `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
「表示」ビューは次のとおりです。
<% 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
「undefined method `title'」というメッセージが表示されます..