0

У меня есть список статей с флажками на форме. Когда флажок установлен, тело выбранного изделия копируется в одну из текстовых областей x.Rails: дублирование информации в другой модели, если выполнены условия

Если пользователь хочет внести изменения в тело статьи в текстовой области, мне нужно отправить это изменение через мой контроллер в новую модель Rails (называемую Edit).

У меня уже есть запись, я просто нуждаюсь в приложении для записи изменений в новую запись Edit. Вот мой отношение контроллер код:

новый

def new 
    @template = Template.find(params[:template]) 
    @article_count = @template.pages-1 
    @doc = Doc.new 
    @doc.template_id = @template.id 
    @doc.user_id = current_user.id 
    @articles = current_user.brand.articles 
    respond_to do |format| 
    format.html 
    format.json { render json: @doc } 
    end 
end 

создать

def create 
    @doc = Doc.new(params[:doc]) 
    respond_to do |format| 
    if @doc.save 
     #make editable version 
     if current_user.brand.try(:editable?) 
     @doc.articles.each do |article| 
      @edit = Edit.new 
      @edit.name = article.name 
      @edit.video = article.video 
      #something here to get the bodies of the text areas 
      @edit.article_id = article.id 
      @edit.doc_id = @doc.id 
      @edit.user_id = current_user.id 
      @edit.save 
     end 
     end 
     @doc.create_activity :create, owner: current_user 
     format.html { redirect_to share_url(@doc.user.ftp, @doc) } 
     format.json { render json: @doc, status: :created, location: @doc } 
    else 
     format.html { render action: "new" } 
     format.json { render json: @doc.errors, status: :unprocessable_entity } 
    end 
    end 
end 

И вот код, который делает текстовые области в зрения.

<% @article_count.times do |article| %> 
    <div id="edit<%= article %>" class="tab-pane <%= "active" if article == 0 %>"> 
    <%= text_area_tag("edit[#{article}][body]") %> 
    </div> 
<% end %> 

отчеты создаются для каждой статьи, но я не могу показаться, чтобы иметь возможность сохранить изменения из текстовых областей. Это своего рода схема вложенных форм. Любая помощь вообще будет определенно оценена. Ура!

ответ

0

Я решил это, разбив форму на две страницы: один обрабатывает выбор, второй - редактирование. Учитывая, что Doc имеет много edits, это метод, который я сделал для второй части формы:

def edit_content 
    @doc = Doc.find(params[:id]) 
    if [email protected]? 
    @doc.articles.reverse.each do |article| 
     @doc.edits.build(:body => article.body) 
    end 
    end 
end 

Надеется, что кто-то помогает.

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