###前提・実現したいこと
今、twitterぽいサイトをrailsの練習で作成しています。
前提として、usersテーブルがid,name,username,email,password,created、 postsテーブルが、id,user_id,body,createdで、users has_many posts ,posts belongs_to usersです。
ユーザーの検索に置いて、少し困っています。
下記のようにコードを作成して見ました。
controller
<h1>友達検索</h1> <% @post = Post.new unless @post %> ユーザー: <%=@user.name %><br/><br/> <%= form_tag("/posts/search", method: "post") do %> <%= label_tag(:username, "名前: ") %> <%= text_field_tag(:username) %> <%= submit_tag("検索") %> <% end %> <hr> <%= if false %> <% @data.posts.each do |ob| %> <%= ob.user_id %> <% end %> <% end %> <% @data.each do |obj| %> <%= obj.name %><br/> <%= obj.username %><br/> <%= obj.created_at %><br/> <%= obj.posts.each do |ob| %> <br/> <%= ob.body %> <% end %> <% end %>
class PostsController < ApplicationController def index @user = current_user end def addRecord if request.post? then Post.create(post_params) redirect_to action: :home end end def home @user = current_user @post = Post.new end def mypage end def search @user = current_user @data = Array.new if request.post? then f = '%' + params[:username] + '%' @data = User.where "name like ? or username like ?", f, f end end end private def post_params params.require(:post).permit(:body) end
1,このユーザー検索で、1ユーザーに対して、そのユーザーに紐付くツイート1つを表示したいのですが、
上記のコードだと、1ユーザーに対して、そのユーザーに紐付くツイート全てが表示されてしまいます。
何か、いい方法ありますか?
2,また、上記のコードで、@data.postsをeachで取り出してるコードがエラーになるんですが、
具体的に何がエラーになっているのかわからないです。
上記の2つのアドバイスよろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/19 02:21