2014-07-24 2 views
1

두 가지 모델, 속성 모델 및 응용 프로그램 모델이 있습니다. 응용 프로그램 has_many 속성 및 속성 belongs_to 응용 프로그램. 따라서 속성 모델에는 해당 속성과 연결된 응용 프로그램을 나타내는 "application_id"필드가 있습니다.레일 링크를 클릭하여 클릭하면 ActiveRecord 속성이 업데이트됩니다.

속성보기 페이지에서 가능한 모든 응용 프로그램의 목록을 표시하고 응용 프로그램에 링크가 있으면이 속성을 클릭하면 속성 모델의 application_id가 해당 응용 프로그램의 ID로 간단히 업데이트됩니다.

def show  
    @property=Property.find(params[:id]) 
    @owner=User.find(Property.find(params[:id]).user_id) 
end 

def update 
    @property=Property.find(params[:id]) 
    if @property.update_attributes(property_params) 
     flash[:success] = "Application added" 
     redirect_to @property #going to change these redirects; this is just to get it working for now 
    else 
     redirect_to @property 
    end 
end 

private 

def property_params 
    params.require(:property).permit(:address, :zip_code, :application_template_id) 
end 

이 ISN '추가 관련 속성 컨트롤러 코드 -

보기/속성/show.html.erb

Choose an application template: 
<ol class="microposts"> 
<% @owner.application.each do |template| %> 
    <li><%= link_to "Application #{template.id}", :controller => "properties", :action => "update", :method => :put, :application_id => template.id %></li> 
<% end %> 
</ol> 

편집 :

여기 내 관련 코드입니다 그래도 일하고있어. 누군가가 내가하려고하는 것을 할 수 있도록 link_to 코드를 조정하는 방법을 알려줄 수 있습니까?

+0

또한 컨트롤러 코드를 게시하십시오. – Bijendra

+0

@GhostRider - 내가 여기에서 작업하고있는 뷰이므로 내 속성 컨트롤러에 show 작업을 게시했습니다. 내 업데이트 작업에서 아직 정의하지 않은 문제가 있습니까? 나는 link_to 태그에서 update 액션을 명시 적으로 참조함으로써 여기에 추가 할 필요가 없다고 생각했다. 어쩌면 틀렸을 수도 있습니다. – tim5046

+0

업데이트 작업을 작성해야합니다. –

답변

1

흥미로운 질문입니다!

당신은 이런 식으로 뭔가를 할 것입니다 : 이것은 당신이 전화를 할 수

#config/routes.rb 
resources :properties do 
    patch ("update_app/:application_id") #-> domain.com/properties/2/update_app/4 
end 

:

#app/views/properties/show.html.erb 
<%= link_to "Update", property_update_app_path(application_id), method: :patch %> 

-

위의 링크를 사용하는 경우 ' 다음과 같이 컨트롤러를 사용할 수 있습니다 :

#app/controllers/properties_controller.rb 
Class PropertiesController < ApplicationController 
    def update_app 
     @property = Property.find params[:id] 
     @property.update({application_id: params[:app_id]}) 
    end 
end 
+1

굉장합니다. 이것은 내가 찾고있는 것입니다. 감사합니다 리치! – tim5046

관련 문제