Ajax Rails3:在没有表单的情况下更新属性是否有最佳实践?
我已经在这个问题上纠结了几天,恐怕我没有足够的词汇来正确地提出这个问题,但是任何反馈都非常感谢 我在一个基本的博客网站上工作。用户可以创建带有标题、说明的帖子,并声明其他人是否可以看到该帖子(公共或私人)。在索引页面中,我希望用户能够看到他们的帖子列表,切换public | private,并删除帖子。列表很简单(我根据用户的帖子呈现了一个部分),AJAX删除链接运行良好:Ajax Rails3:在没有表单的情况下更新属性是否有最佳实践?,ajax,ruby-on-rails-3,Ajax,Ruby On Rails 3,我已经在这个问题上纠结了几天,恐怕我没有足够的词汇来正确地提出这个问题,但是任何反馈都非常感谢 我在一个基本的博客网站上工作。用户可以创建带有标题、说明的帖子,并声明其他人是否可以看到该帖子(公共或私人)。在索引页面中,我希望用户能够看到他们的帖子列表,切换public | private,并删除帖子。列表很简单(我根据用户的帖子呈现了一个部分),AJAX删除链接运行良好: <%= link_to 'Delete Post', post, :confirm => 'Are you s
<%= link_to 'Delete Post', post, :confirm => 'Are you sure?', :method => :delete, :remote => true %>
那么,在Rail3中,更新单个属性的正确方法是什么?(还有更合适的措辞吗?)?我必须使用表格吗?有没有Rails3方法(比如destroy.js.erb)来添加onclick/onchange事件,或者我需要开发自己的JavaScript
扎巴的回答很好;然而,我最终使用了通过JavaScript(特别是jQuery)提交的隐藏表单 他认为:
<div>
<%= form_for(post, :remote => true) do |f| %>
<%= f.hidden_field :public, { :value => !post.public } %>
<% end %>
<% if post.public == true %>
<div class="pp">Public</div>
<% else %>
<div class="pp">Private</div>
<% end %>
</div>
对这两种方法有何评论?还有一个习惯用法吗?我会这样做(未经测试,因此可能会有一些小错误):
PostsController
a。链接“应该是:'你确定吗?',:method=>:put,:remote=>true%>
b、 该操作将接收帖子的id(params[:id]
)make_public
的方法
a、 调用update\u属性:公开=>true
<%= form_for(post, :remote => true) do |f| %>
<div class="field">
<%= f.label :public %><br />
<%= f.check_box :public %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
<div>
<%= form_for(post, :remote => true) do |f| %>
<%= f.hidden_field :public, { :value => !post.public } %>
<% end %>
<% if post.public == true %>
<div class="pp">Public</div>
<% else %>
<div class="pp">Private</div>
<% end %>
</div>
$('.pp').live('click', function(){
$(this).siblings('form').submit();
});