代码之家  ›  专栏  ›  技术社区  ›  theprojectabot

想在Rails中修改我的更新方法,但REST限制了我

  •  0
  • theprojectabot  · 技术社区  · 16 年前

    问题: 我有一组人,我想有一个review.html页面,允许我在所有人身上增加一个整数。

    如果我在People_控制器中使用新方法,它会自动将我发送给People/Review.。它被解释为显示/修改…这不是身份证。

    我知道这是因为休息时的收缩。但我真的不知道该怎么更新所有的记录。

    我是不是要为修订版制作一个新的控制器?或者在People_控制器内修改更新方法。

    以下是我的review.html.erb的一些代码:

    <h1>Update the All Bio's Revision'</h1>
    
    <% form_for(@people) do |f| %>
      <%= f.error_messages %>
      <p>
        <%= f.label :version %><br />
        <%= f.text_field :version %>
      </p>
      <p>
        <%= f.submit "Update Revision" %>
      </p>
    <% end %>
    
    <%= link_to 'Back', people_path %>
    

    我想让这个从文本字段提交它的参数并更新所有人

    @people = Person.find(:all)
    
    @people.each do |person|
    
    person.version = params(:version)
    
    end
    

    是的,我只是不知道我是否得到了Rails2之类的新语法。

    谢谢大家的帮助!

    2 回复  |  直到 16 年前
        1
  •  1
  •   Wincent Colaiuta    16 年前

    所以你要检索所有文章,然后逐个设置它们的版本属性(忘记保存它们)。你最好使用person.update_all。让数据库为您完成这项工作。

    至于控制器操作,在标准的restful 7中添加一个额外的操作是没有坏处的,只要你不喜欢它。这就意味着“修改”变成了一个保留的关键字;没有人可以把它作为自己的ID。你也可以把表格放在“索引”动作的底部。

        2
  •  2
  •   Joshua Cheek    16 年前

    如果它发生在一组人员上,那么它属于人员控制器。您可以通过如下方式修改您的资源来定义到人员集合的路由:

    map.resources :people, :collection => { :revise  => :post }
    

    docs for adding a collection to your route