新しい質問が一番下に表示されます。アプリケーションの2番目の部分にコメントを作成するためのレールフォームを作成する(モーダル)
は私がexample.com/usersに表示できるフォームを作成したいexample.com/users/2
でページ分割されています/ 2コメントを作成します。私は現在example.com/photos/:idでコメントを作成することができます。しかし、example.com/users/2のインスタンス変数はexample.com/photos/:idとは異なっていると表示され、それぞれのユーザーの写真が道のようなInstagramのにページ分割されているCommentsController > def create
PhotosController
def show
@photo = Photo.find(params[:id])
end
CommentsController
def create
@photo = Photo.find(params[:photo_id])
@comment = @photo.comments.build(comment_params)
@comment.save
redirect_to photo_path(@photo)
end
UsersController
def show
@user = User.find(params[:id])
@photos = @user.photos.order('created_at desc').paginate(page: params[:page], per_page: 12)
end
では動作しません。モーダルを表示するためにクリックされた行のサム。
Users > show.html.erb
.
.
<% @photos.in_groups_of(3, false).each do |group| %>
<% group.each do |photo| %>
<a data-toggle="modal" href=<%="#"+"#{photo.id}"%>>
<div class="col-xs-4">
<div class="thumb">
<%= image_tag(photo.picture.thumb.url, class: "img-responsive") %>
.
.
.
<% =のform_for([photo.id、photo.id.comments.build])を行う| F | %>
<%= f.label :content %><br>
<%= f.text_area :content %>
<%= f.submit %>
<% end %></s>
上記のフォームは、Herokuのエラーメッセージが動作しません。
ActionView::Template::Error (undefined method `comments' for 23:Fixnum):
23は次のようになります。私の最後の(最初の)写真のID。
編集:私はまた、しかし、これはフォームが配置されている私のモーダルを閉じているredirect_to :back
へredirect_to photo_path(@photo)
からCommentsController
を変更
<%= form_for([photo, Comment.new]) do |f| %>
<%= f.label :content %><br>
<%= f.text_area :content %>
<%= f.submit %>
<% end %>
:これは、下記答えたように変更します。 @comment.save
の後に新しいコメントを表示してモーダルを開いたままにするには、どのようなコードが必要ですか?
ティミーにフォーム、質問は何ですか? – Uzbekjon
私が使用しているフォームは機能しません。 –
"うまくいかない"と定義して質問に追加するべきだと思います。しかし、それはちょうど私かもしれません。 – Uzbekjon