更新特定记录的属性

时间:2017-01-02 14:10:00

标签: ruby-on-rails ruby-on-rails-5

我们说我的墙上演出动作中列出了一堆卡片。当您与卡片互动时(例如,点击它),我想更新该卡片的属性。

我目前通过使用Javascript获取卡片属性,将其添加到卡片表格并远程提交表单来实现此目的。

我有卡的ID,但如何告知表单我要更新哪张卡?

表单和控制器更新操作应该是什么样的?

这是我到目前为止所拥有的

表格

<%= form_for(@card, remote: true) do |f| %>
    <%= f.text_field :list_id %>
    <%= f.text_field :order %>
<% end %>

控制器

def update
    @card = Card.find(params[:id])

    if @card.update_attributes(shared_params)
        redirect_to edit_card_path(@card, format: :html)
    else
        render :edit
    end
end

1 个答案:

答案 0 :(得分:0)

您也可以使用相同的新模板进行编辑。这里唯一的要求是你想要编辑的对象。

因此,首先让您在控制器中编辑动作

def edit
  @card = Card.find(params[:id])
end

编辑/ new.html.erb

<%= form_for(@card, remote: true) do |f| %>
    <%= f.text_field :list_id %>
    <%= f.text_field :order %>
<% end %>

在卡片展示页面中,添加指向编辑操作的链接

<%= link_to "Edit", edit_card_path(card.id) %>