0
나는 많은 Microposts를 가진 사용자가 있습니다. Microposts는 사용자에 속합니다. 지금은 사용자가 자신의 프로필에 게시 할 수 있습니다. 모든 사람들이 거기에 게시 할 수있게하려면 어떻게해야합니까? Micropost 테이블에 "sender_id"열을 추가 한 마이그레이션을 실행했지만, sender_id를 사용하여이 작업을 수행하는 방법을 파악할 수 없습니다. 나는 독서 덕분에 레일스가 처음이다.사용자가 다른 사용자의 프로필에 게시하도록 허용하는 방법
@user = User.find(73) #change so it posts to the user page im on
@micropost = @user.microposts.build(params[:micropost])
@micropost.sender_id = current_user.id
if @micropost.save
flash[:success] = "Music Posted!"
redirect_to :back
end
Micropost 양식 :
Micropost 컨트롤러 만들어 사용자로 USER_ID가 프로필과 SENDER_ID을 가진 사람이 할
<%= form_for(@micropost) do |f| %>
<div class="field">
<%= f.text_area :comment, placeholder: "send a message" %>
</div>
<%= f.submit "Share", class: "btn btn-medium btn-primary" %>
<% end %>
Microposts 테이블에서를 그 다른의에 게시물 윤곽.
솔루션은 USER_ID의 PARAM 세트를 얻기 위해 micropost 양식에 추가 hidden_field_tag이었다 다음 @user = User.find (PARAMS [: USER_ID])
@user 여기에 대해 알아 두어야 할 사항이 있습니까? – Jaqx
이것은 사용하는 라우팅에 따라 다릅니다./users/: user_id/microposts와 같은 것을 가지고 있다면 "73"대신에'params [: user_id]'를 넣을 수 있습니다. 이 정보를 이미 검색 할 수 있는지 확인하기 위해 조치를 실행할 때 params 변수에 포함 된 내용을 확인해야합니다. –
@user = User.find (params [: user_id])가 "사용자에게 ID가없는 사용자를 찾을 수 없습니다."를 반환했습니다. 나는 그것이 효과가있을 것이라고 생각했다. 게시물이 아직 만들어지지 않았기 때문에 user_id가 게시물에 대해 nil이 아니기 때문에 그렇습니까? – Jaqx