Значения поля исчезают при редактировании (Rails)? - PullRequest
1 голос
/ 28 февраля 2012

Это форма, которая обрабатывает две модели: Post и Tag обе имеют has_and_belongs_to_many связь друг с другом. Модель тега имеет атрибут с именем :name, а модель Post имеет атрибут attr_accessor с именем :tag_name (чтобы могло работать автозаполнение):

<%= form_for(@post) do |f| %>
  <%= render 'shared/error_messages' %>
  <div class="field">
    <%= f.label :title %><br />
    <%= f.text_field :title %>
  </div>
  <div class="field">
    <%= f.label :content %><br />
    <%= f.cktext_area :content %>
  </div>
  <div class="field">
    <%= f.label :tag_name %>
    <%= f.autocomplete_field :tag_name, autocomplete_tag_name_posts_path, :"data-delimiter" => ' ' %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

Почтовая модель:

class Post < ActiveRecord::Base
  attr_accessible :title, :content, :tag_name

  attr_accessor :tag_name

  def tag!(tags)
    tags = tags.split(" ").map do |tag|
      Tag.find_or_create_by_name(tag)
    end
    self.tags << tags
  end
end

пост-контроллер:

  def create
    @user = current_user
    @post = @user.posts.new(params[:post])

    if @post.save
      redirect_to @post, notice: 'post was successfully created.'
    else
      render action: "new"
    end

    @post.tag!(params[:post][:tag_name])
  end

  def edit
    @post = Post.find(params[:id])
  end

  def update
    @post = Post.find(params[:id])
    @post.update_attributes(params[:post])
    @post.tag!(params[:post][:tag_name])
    redirect_to @post
  end

В этом поле, в котором используется гем rails3-jquery-autocomplete , сохраняются введенные мной значения. Но когда я нажимаю «Изменить», поле остается пустым, но странно то, что я могу ввести больше текста и нажать «Обновить»:

<%= f.autocomplete_field :tag_name, autocomplete_tag_name_posts_path, :"data-delimiter" => ' ' %>

Есть предложения, чтобы это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...