문제 모델과 설명 모델이 있습니다. 문제 # show view에는 의견 양식이 있습니다. 문제 # show controller 액션에서 폼의 @comment를 만든 다음 comment #에 컨트롤러 액션을 생성하여 실제로 db에 코멘트를 저장하고 저장합니다. 그러나 @comment 매개 변수가 comment # create 액션에 전달되면 필자는 필요한 issue_id 정보를 더 이상 가지지 않습니다. 그 정보를 어떻게 전달합니까? 여기 내 파일은 다음과 같습니다form_for에서 다른 컨트롤러로 매개 변수를 전달하려면 어떻게합니까?
<%= form_for @comment do |f| %>
<%= render 'comment_fields', :f => f %>
<%= f.submit "Submit" %>
<% end %>
문제 컨트롤러 :
def show
@issue = Issue.find(params[:id])
@votes = Votership.where(:issue_id => @issue.id)
@current_user_vote = @votes.where(:user_id => current_user.id).first
@comment = Comment.new
end
및 주석 컨트롤러 :
def create
@comment = Comment.new(params[:comment])
@comment.save
redirect_to :back
end
문제 # show view에 대한 의견을 작성하여이 같은 것을 시도했지만 필요한 적절한 변수가 포함되어 있습니다. 그러나 Comment.new (params [: comment])를 수행했을 때 comments # new 액션을 만들었을 때 (# 새 Comment를 작성했기 때문에 믿을 수 있었고 params에 var를 포함하지 않았기 때문에 # :논평]). 내가 당신의 코드를 시험해 보았을 때, build_comment가 나에게 오류를 주었다 : 정의되지 않은 메소드'build_comment ' –
당신은 어떤 버전의 레일즈를 사용하고 있는가? 나는 나의 대답을 업데이트했다. –
버전 3.1 ... 내 의견 컨트롤러에 issue_id를 전달하는 방법이 필요합니다. 나는 그것과 함께 숨겨진 필드를 전달함으로써 거의 작동하게 만들었습니다 : <% = hidden_field (: issue_id, @ issue.id) %> 그러나 문제를 전달하기 때문에 issue_id와 함께 이것을 구현했습니다. key = @ issue.id 및 value = nil. –