2012-06-08 2 views
0

Я пытаюсь предоставить форму для создания «сообщения» для каждой функции на странице features_index. К сожалению, я получаю сообщение об ошибке «Не удалось найти функцию без идентификатора».Передача местных жителей частичным

Прошел ли я местных жителей? У 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 в ваше действие create.

f.hidden_input :feature_id 
+0

спасибо - это сработало отлично! (Я также сделал очень быстрое исправление {message: Message.new (feature_id: feature.id)} " – Doug

Смежные вопросы