2011-01-03 6 views
0

모델의 속성을 설정하는 양식이 있지만 코드를 통해 설정하려는 속성이 있습니다. 즉, 사용자가 일부 속성을 설정하기를 원하지만 프로그램에서 다른 속성을 설정하기를 원합니다.ruby ​​on rails - 중첩 된 양식

이렇게하는 방법이 있습니까?

예 : 나는 "텍스트"열 및 "사용자"열이있는 테이블이있는 경우

, 나는 사용자가 텍스트를 입력 할,하지만 난 "사용자"열은 프로그램에 의해 설정되어야 할 . 나는 어떻게 이것을 성취 할 것인가?

답변

2

확실히. 당신은 같은 것을 할 수있는 : 양식에서

def create 
    @something = Something.new(params[:something]) 
    @something.programmatically_set_attribute = "Some value" #Here's the part that matters 

    respond_to do |format| 
    if @host.save 
     format.html { redirect_to(@something, :notice => 'Something was successfully created.') } 
     format.xml { render :xml => @something, :status => :created, :location => @something} 
    else 
     format.html { render :action => "new" } 
     format.xml { render :xml => @something.errors, :status => :unprocessable_entity } 
    end 
    end 
end 

을, 당신은 단지 당신이 인간의 손에 의해 편집하지 않으려는 현장을 떠날 것이다. 또한 업데이트 기능을 변경해야합니다.

0

당신은 단지 텍스트 속성은 당신이

 
class MyModel < ActiveRecord::Base 
    attr_accesssible :text 
end 

을 다음과 같이이 MyModel의 텍스트 속성을 업데이트 할 수 있도록합니다 attr_accessible 사용할 수 있습니다 사용자와 다름 업데이트 할 수 있는지 확인하려면 질량 할당을 통해.