Обновление записи с помощью удаленной функции Rails - PullRequest
1 голос
/ 21 декабря 2011

Я просто хотел узнать, есть ли какой-нибудь метод для обновления записи таблицы из представления?Например, могу ли я удалить запись из таблицы, используя приведенный ниже код?

<td><%= link_to 'Delete', my_path(user), :confirm => 'Are you sure?', :method =>:delete, :remote=>true %></td>

И в моем контроллере у меня есть:

def destroy
  @user = User.find(params[:id])
  @user.destroy

  respond_to do |format|
    format.js do
      render(:update) { |page| page.reload }
    end
  end
end

Приведенный выше код работает отлично.Он удаляет запись из таблицы, а также перезагружает страницу после нажатия на ссылку уничтожить. Теперь мой вопрос: могу ли я сделать то же самое для обновления значения в моей записи?Если так, как я могу это сделать?

1 Ответ

0 голосов
/ 21 декабря 2011

Конечно, вы можете просто изменить несколько вещей:

Метод в вашем контроллере будет обновлен:

def update
  @user = User.find(params[:id])
  @user.update_attributes(params[:user])

  respond_to do |format|
    format.js do
      render(:update) { |page| page.reload }
    end
  emd
end

Затем вы измените свою ссылку на что-то вроде следующего:

<td><%= link_to "Update", my_path(user), :method => :put, :remote => true %></td>

Имейте в виду, это при условии, что вы находитесь в теге form_for @user.

<%= form_for @user do |f| %>
  <%= f.text_field :name %>
  # aforementioned link to update goes here
<% end %>

Это впечатление, что вы настроили @user в контроллереметод (скорее всего def edit)

def edit
  @user = User.find(params[:id])
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...