저는 레일스에 초보자이며 포럼을 만들려고합니다. 포럼은 많은 주제를 가지고 있으며, 주제는 포럼에 속하며 많은 마이크로 포스트를 가지고 있으며 마이크로 포스트는 주제와 사용자 모두에 속합니다. 그러나 내가 시도한 것에 관계없이 게시물은 생성되지 않습니다. 내가 게시하려고 현재 때, 나는 라우팅 오류/주제 ""토픽 페이지의 레일스 포럼에 게시물을 생성 할 수 없습니다.
내 routes.rb 파일 "어떤 경로 일치 [얻을]"
resources :users
resources :sessions, only: [:new, :create, :destroy]
resources :microposts, only: [:create, :destroy]
resources :forums, only: [:index, :show]
resources :topics, only: [:show]
_micropost_form.html.erb
<%= form_for(@micropost) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div class="field">
<%= f.hidden_field :topic_id, value: @topic.id %>
<%= f.hidden_field :user_id, value: current_user.id %>
<%= f.text_field :summary, placeholder: "One-line summary..." %>
<%= f.text_area :content, placeholder: "Compose a new post..." %>
</div>
<%= f.submit "Post", class: "btn btn-large btn-primary" %>
<% end %>
당신이 볼 수 있듯이
microposts_controller.rb
class MicropostsController < ApplicationController
before_action :signed_in_user, only: [:create, :destroy]
before_action :correct_user, only: :destroy
def create
#@topic = Topic.find_by_id(params[:topic_id])
@micropost = current_user.microposts.build(micropost_params)
if @micropost.save
flash[:success] = "Your solution has been posted!"
redirect_to topic_path(@topic)
else
redirect_to topic_path(@topic)
end
end
def destroy
@micropost.destroy
redirect_to root_url
end
private
def micropost_params
params.require(:micropost).permit(:summary, :content, :user_id)
end
def correct_user
@micropost = current_user.microposts.find_by(id: params[:id])
redirect_to root_url if @micropost.nil?
end
end
, 내 생성 함수에서 첫 번째 줄에서 주석 나는 마이크로 포스트의 주제에 대한 아무 관계없이 관계를 기반으로 글을 게시하려했기 때문에. 미리 감사드립니다. 더 많은 코드를 게시하면 도움이 될지 알려주세요!
빠른 응답 주셔서 감사합니다. 그러나 여전히 나에게 도움이되지 않습니다. (처음에는 경로 및 주제 컨트롤러에 색인을 추가했지만 결국/topics 페이지로 연결되고 검색 결과를 저장하지 않았습니다. micropost. 저장하지 않았던 것처럼 보였고, 그냥 리다이렉트되었고, 잘못된 페이지로 보냈습니다 ... 또한, 내 라우트 파일을 변경하고 제출을 클릭하면 라우팅 오류가 발생합니다. "경로 일치 [POST]"/ microposts ""- 경로 파일을 변경하는 것 이상을 수행해야합니까? – sw2500
제거 : 마이크로 포스트의 옵션 만 제거하십시오.모든 경로로 리디렉션됩니다. –
효과가 있었습니까? –