非アクティブ レコード モデルで動作するフォームを作成しています。2つの問題があります..
キーワード/ID/編集をポイントすると、フォームの送信ボタンに「キーワードの作成」と表示され、その送信ボタンを押すと、キーワード コントローラーの create メソッドに移動します。更新アクションに移動する必要があります。
また、'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