RoR newbee的位。我想在表單上顯示模型屬性,爲用戶提供更改其值並「提交」表單的功能。我想將表單路由到一個控制器,該控制器不屬於該屬性所屬類的「基本」控制器,並且具有「輔助」控制器更新數據庫中的屬性。下面是窗體的代碼:如何將表單路由到與模型類關聯的控制器以外的控制器?
<h1>Edit Number of Current Calls</h1>
<%= form_for(@client) do |f| %>
<% if @client.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@client.errors.count, "error") %>
prohibited this client from being saved:</h2>
<ul>
<% @client.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label "Number of Current Calls:" %><br />
<%= f.text_field :current_call_count %>
</div>
<%= button_to 'Update In', { :controller => "client_profiles", :action => "update" }, :method => :put %>
<% end %>
<%= button_to 'Update Out 1', { :controller => "client_profiles", :action => "update" }, :method => :put %>
<%= button_to 'Update Out 2', { :controller => "client_profiles", :action => "update", :client => {:current_call_count => @client.current_call_count} }, :method => :put %>
如果用戶「點擊」的「更新在」按鈕其提交被路由到「客戶」控制器和屬性在DB更新。
如果用戶點擊任一「更新輸出1」或「更新輸出2」按鈕其提交被路由到「client_profiles」的控制器,但該屬性不被更新。下面是相關的代碼在「client_profiles」控制器:
def update
@client = Client.find(params[:id])
@client.update_attributes(params[:client])
redirect_to show_phone_client_profile_path(@client)
end
我怎樣才能航線「更新在」提交「client_profiles」控制器?
如何捕獲的「更新Out」按鈕輸入值的用戶?
爲什麼出現「button_to代碼」的位置改變是針對在button_to選擇路由?
我真的要更新只是從幾個模型顯示的數據形式的一個屬性。什麼是正確的Rails方式?
這裏有很多事情要做,還有幾件事情需要改變。也許你可以用1或2句話來描述你想要的功能? – tyler