2012-06-08 3 views
0

features_index 페이지의 각 기능에 대한 "메시지"를 작성하는 양식을 제공하려고합니다. 불행히도 "ID가없는 지형지 물을 찾을 수 없습니다."라는 오류 메시지가 나타납니다.부분으로 지역 정보 전달하기

현지인을 제대로 통과 했습니까? Params에 feature_id가없는 것 같습니다! (아마도이 ​​대신 @위한 시간

특징/인덱스 뷰 :

- @features.each do |feature| 
%tr 
    %td= feature.project_id 
    %td= feature.subject 
    %td= feature.details 
    %td= link_to 'Show', feature 
    %td= link_to 'Edit', edit_feature_path(feature) 
    %td= link_to 'Destroy', feature, :confirm => 'Are you sure?', :method => :delete 

    - if feature.messages.length > 0 
    - feature.messages.each do |message| 
     = render partial: "message_form", locals: {message: message} 
    - else 
    %td 
     = render partial: "message_form", locals: {message: Message.new(feature_id: feature)} 

%br/ 

특징/_message_form :

= simple_form_for(message) do |f| 
    = f.error_notification 

.form-inputs 
    -# = f.input :feature_id 
    -# = f.input :sender 
    -# = f.input :receiver 
    = f.input :subject 
    = f.input :details 

.form-actions 
    = f.button :submit 

및 메시지 컨트롤러 :

def create 
@feature = Feature.find(params[:message][:feature_id]) 

@message = @feature.messages.build(params[:message]) 

respond_to do |format| 
    if @message.save 
    flash[:notice] = "Message sent!" 
    format.html { redirect_to @message, notice: 'Message was successfully created.' } 
    format.json { render json: @message, status: :created, location: @message } 
    else 
    flash[:notice] = "Message failed to send." 
    format.html { render action: "new" } 
    format.json { render json: @message.errors, status: :unprocessable_entity } 
    end 
end 
end 

감사합니다.

답변

1

필자는 feature_id에 대한 param을 생성 액션에 전달하기 위해 hidden_field가 필요하다고 생각합니다.

f.hidden_input :feature_id 
+0

감사합니다. 완벽하게 작동했습니다. (나는 또한 {message : new (feature_id : feature.id)}의 " – Doug

관련 문제