2012-08-06 2 views
0

비 activerecord 모델로 작업 할 양식을 작성 중입니다. 나는 제출 버튼이 잘못된 동작을 가리키고 있습니다

  1. I 키워드/ID를 가리

    은/내 양식의 제출 버튼 '키워드를 만듭니다'라는 편집 .. 두 가지 문제를 가지고 있고, 그 제출 '버튼을 누르면 내 키워드 컨트롤러의 작성 방법에 나를 걸립니다. 업데이트 작업으로 이동해야합니다.

  2. 또한 업데이트 동작에 '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 

답변

0

편집 작업의 @keyword = Keyword.new 행을 @keyword = Keyword.find(params[:id])으로 변경하거나 키워드를 찾으십시오. 정상적인 RESTful 레일 경로를 사용한다면, 그렇게해야합니다.

사실, 당신은 (result@result된다)

+0

나는 그것을 시도하고 다음 라우팅 오류'없음 경로 일치 [POST] "/ 키워드/60836"' –

+0

을 가지고 form_for(@keyword, :url => keyword_path(@result)을하고 바르로 결과를 변경 단지 수 루트 파일에'resources : keywords'가 있습니까? 그렇지 않다면, 또는 할 수 있다면, 키워드가 들어있는'config/routes.rb' 파일에있는 경로를 붙여 넣으십시오. 어쩌면 그것은 라우팅 문제 일 수도 있습니다. – pjammer

+0

수정 된 게시물이 경로를 포함합니다. 덕분에 –

관련 문제