0
我正在構建一個表單以使用非activerecord模型。我有兩個問題..提交按鈕指向錯誤的動作
當我點到的關鍵字/ ID /編輯我的表單的提交按鈕說:「創建關鍵字」,並按下該按鈕提交帶我到創建方法我的關鍵字控制器上。它應該帶我去更新行動。
我還想發送一個名爲'id'的屬性給我的更新操作。我不知道如何做到這一點。就像我說的那樣,這不是一個主動記錄模型。
/views/keywords/_form.html.erb
<%= form_for(@keyword) do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :keyword %><br />
<%= f.text_field :keyword %>
</div>
<div class="field">
<%= f.label :message1 %><br />
<%= f.text_area :message1 %>
</div>
<div class="field">
<%= f.label :message2 %><br />
<%= f.text_area :message2 %>
</div>
<div class="field">
<%= f.label :start_time %><br />
<%= f.text_area :start_time %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
/controller/keywords_controller.rb >>編輯操作
def edit
result = Keyword.find(params[:id])
result = result.to_array(:get_response, :return, :data, :item)
result = result.first
@keyword = Keyword.new
@keyword.id = result[:item][0][:value]
@keyword.name = result[:item][1][:value]
@keyword.keyword = result[:item][2][:value]
@keyword.message1 = result[:item][3][:value]
if(result[:item][4][:value] != {:"@xsi:type"=>"xsd:string"})
@keyword.message2 = result[:item][4][:value]
end
@keyword.start_time = result[:item][5][:value]
end
/models/keyword.rb
class Keyword
extend ActiveModel::Naming
include ActiveModel::Conversion
def persisted?
false
end
attr_accessor :id, :name, :keyword, :message1, :message2, :start_time
def self.get_keywords(cid)
#get data from webservice
end
end
config/routes.rb
SchoolBeacon::Application.routes.draw do
devise_for :users
devise_for :admins
resources :keywords
end
我嘗試過了,得到了下面的路由錯誤'沒有路由匹配[POST]「/關鍵字/ 60836」' – 2012-08-06 02:58:54
你的路線文件中有'resources:keywords'嗎?如果沒有,或者如果可以的話,粘貼你在你的'config/routes.rb'文件中包含單詞關鍵字的路徑。也許這只是一個開始的路由問題。編輯後的 – pjammer 2012-08-06 10:09:29
以包含路線。謝謝 – 2012-08-06 17:01:45