0

我正在使用 link_to 标签来更改有效性:

  <%= link_to "Mark as " + (doc.is_valid ? "invalid" : "valid"), 
                  :action =>'change_validity',:id => doc.id %>

这里,is_valid 是表中具有布尔值的字段。当它是真的链接将显示为“标记为无效”。当我单击链接时,它将在控制器中调用方法“change_validity”方法。该方法将切换 is_valid 字段并在视图中显示“标记为有效”。

这个我想用 AJAX 做。我尝试使用 link_to_remote。但我无法得到它。谁能解释一下怎么做???

4

2 回答 2

1

制作一个部分页面。_preview.html.erb 并将以下代码放入您的局部视图

<%= link_to_remote "Mark as " + (doc.is_valid ? "invalid" : "valid"), :update => "update", :url => { :action => "change_validity", :id => doc.id } %>

在你的主视图 file.put 下面的代码

<div id="update">
    <%= render :partial => "preview", :locals => { :doc => @doc} %>
</div>

在您的控制器中应该有以下代码

def change_validity
// do stuff here
render :partial => "preview", :locals => { :doc => @doc}, :content_type => 'text/html'
end
于 2012-09-14T11:27:58.510 回答
0

link_to_remote 在 Rails 3 中不可用。将:remote => true添加到您的链接。

link_to "Mark as " + (doc.is_valid ? "invalid" : "valid"), 
              change_validity_path(:id => doc.id), :remote => true

编辑:对于 rails < 3 尝试

link_to_remote(
        "Mark as " + (doc.is_valid ? "invalid" : "valid"),
        :url => {:action => "change_validity", :id => doc.id},
        :update => "your_div_id",
        :html => {:class => "something"}
      )
于 2012-09-14T11:00:24.610 回答