0

我正在尝试使用表单进行编辑,<%= form_for @agent, :action => 'agents/update', :method => :put do |f| %>但是当我单击“保存更改”时,表单将作为 GET 请求而不是 PUT 提交给update操作。

resources :agentsroutes.rb档案里有。

agents_controller.rb显示和更新操作中:

def show
@agent = Agent.find(params[:id])
@subscription = @agent.subscription
end

def edit
@agent = Agent.find(params[:id])
@subscription = @agent.subscription
end

def update
@agent = Agent.find(params[:id])
@subscription = @agent.subscription
@agent.update_attributes(:agent)
end

当您无法使标准编辑表单正常工作时,这非常令人沮丧,感谢您的帮助。

编辑

agents/edit.html.erb

<%= form_for @agent do |f| %>

  <ul>
    <% for message in @agent.errors.full_messages %>
        <li><%= message %></li>
    <% end %>
  </ul>


<div class="control-group">
  <label class="control-label" style="width:200px;margin-right:20px"><strong>First name</strong></label>
  <div class="controls">
    <%= f.text_field :first_name, :placeholder => 'First name', :class => '', :style => '' %>
  </div>
</div>
<div class="control-group">
  <label class="control-label" style="width:200px;margin-right:20px"><strong>Last name</strong></label>
  <div class="controls">
    <%= f.text_field :last_name, :placeholder => 'Last name', :class => '', :style => '' %>
  </div>
</div>
    <div class="control-group">
      <label class="control-label" style="width:200px;margin-right:20px"><strong>Email</strong></label>
      <div class="controls">
        <%= f.text_field :email, :placeholder => 'Your email', :class => '', :style => '' %>
      </div>
    </div>
    <div class="control-group">
      <label class="control-label" style="width:200px;margin-right:20px"><strong>Phone</strong></label>
      <div class="controls">
        <%= f.text_field :phone, :placeholder => 'Your phone number', :class => '', :style => '' %>
      </div>
    </div>


<div class="form-actions">
  <%= f.submit "Save Changes", :class => 'btn btn-success' %>
  <%= link_to 'Cancel', leads_path, :class => 'btn' %>
</div>

<% end %>
4

2 回答 2

2

您不需要为这样的简单表单提供方法或操作。一个简单的

<% form_for @agent do |f| %>

应该做你。你试过吗?页面上是否还有其他可能存在冲突的表格?如果是这样,请先尝试删除其他表单,然后看看情况如何。

于 2013-06-24T21:56:04.127 回答
0

解决它。这篇文章涵盖了完全相同的问题:HTML <form> 标签导致 Rails 表单提交 GET 而不是 POST 请求

GET 请求是由 rails 表单周围的表单标签引起的,该标签用于添加 twitter 引导样式类“form-horizo​​​​ntal”。删除了额外的表单标签,它工作正常。

于 2013-06-24T23:36:16.040 回答