2013-07-30 2 views
1

Приложение My Rails имеет задачи и задачи has_many Taskups (обновления или комментарии). Показывая страницу, в которой перечислены задачи, я хочу, чтобы модальный список Bootstrap содержал существующие Taskups и позволял добавлять новую Taskup.Rails Bootstrap modal пытается обновить неверную модель

Это код внутри списка задач, которые должны запустить модальный:

<a data-toggle="modal" href="#task-<%= task.id %>" class="btn btn-primary btn-mini" type="button">Comments</a> 
<%= render :partial => "taskups/comments", locals: {task: task} %> 

модальной всплывает, и вы можете увидеть перечень Taskups для этой задачи. Также есть поле ввода для новой Taskup.

Это модальный код:

<div id="task-<%= task.id %>" class="modal" style="display: none;"> 
<%= simple_form_for :taskup, :url => {:action => :create} do |f| %> 
    <div class="modal-header"> 
    <a class="close" data-dismiss="modal">&#215;</a> 
    <h3>Comments</h3> 
    </div> 

    <div> 
    <% task.taskups.each do |taskup| %> 
     * 
     <%= taskup.comments %> 
     </br> 
    <% end %> 
    </div> 

    <div class="modal-body"> 
    <%= f.input :comments, :label => 'New Comment:' %> 
    <%= f.hidden_field :task_id, :value => task.id %> 
    <%= f.hidden_field :user_id, :value => current_user.id %> 
    </div> 
    <div class="modal-footer"> 
    <%= f.submit "Save Comment", :class => "btn-primary" %> 
    <a class="btn" data-dismiss="modal" href="#">Close</a> 
    </div> 
<% end %> 
</div> 

Но, если вы вводите текст в поле ввода и нажмите на кнопку «Сохранить Комментарий», следующий экран, который вы видите, форма ввода задач.

Это как код пытается добавить новую задачу вместо новой Taskup.

Спасибо за помощь!

Update1

Это код контроллер для Taskups. (Но, я думаю, что контроллер Задача вызывался каким-то образом)

# POST /taskups 
# POST /taskups.json 
def create 
    @taskup = Taskup.new(params[:taskup]) 

    respond_to do |format| 
    if @taskup.save 
     if @taskup.taskstatus_id != nil 
     Task.find(@taskup.task_id).update_attributes(:taskstatus_id => @taskup.taskstatus_id) 
     end 
     format.html { redirect_to @taskup, notice: 'Task Update was successfully created.' } 
     format.json { render json: @taskup, status: :created, location: @taskup } 
    else 
     format.html { render action: "new" } 
     format.json { render json: @taskup.errors, status: :unprocessable_entity } 
    end 
    end 
end 

Это Taskups модель:

class Taskup < ActiveRecord::Base 

    belongs_to :taskstatus 
    belongs_to :task 
    belongs_to :user 

    default_scope { where(tenant_id: Tenant.current_id) } 

    default_scope :order => 'taskup_date ASC' 
end 
+0

Пожалуйста, вставьте контроллер и код модели. –

+0

Я добавил контроллер и модель к моему вопросу. – Reddirt

+0

Ну, во-первых, форма вызывает действие create, а не обновление. – MurifoX

ответ

1

Это сработало:

<%= simple_form_for :taskup, :url => url_for(:action => 'create', :controller => 'taskups'), :method => 'post' do |f| %> 
Смежные вопросы