我使用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。但我无法得到它。 任何人都可以解释如何做到这一点???
答案 0 :(得分: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
答案 1 :(得分:0)
link_to_remote在Rails 3中不可用。添加:remote =&gt;是到您的链接。
link_to "Mark as " + (doc.is_valid ? "invalid" : "valid"),
change_validity_path(:id => doc.id), :remote => true
编辑:for rails&lt; 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"}
)