2012-11-18 4 views
0

레일즈에서 simple_form을 사용하여 특정 이벤트를 만듭니다. 새 이벤트를 만들려면 사용자로 로그인해야합니다. 양식은 사용자에게 이벤트 이름, 시작 날짜 및 종료 날짜를 입력하도록 요청합니다. 사용자가 제출 단추를 클릭하면 양식에서 데이터베이스의 user_id 특성을 자동으로 업데이트합니다.양식에서 submit을 클릭하면 레일스가 데이터베이스 속성을 자동으로 업데이트합니다.

지금 데이터베이스에서 user_id 필드는 항상 null로 설정됩니다. 나는이 속성이 필요하지만 설정 될 :

events.user_id = current_user.id

여기에 대한 추가 정보를 원하시면 내 이벤트 테이블 : enter image description here

참고 : 나는 수동으로 데이터베이스에 USER_ID 값을 입력.

질문 : 사용자가 제출을 클릭하면 데이터베이스 속성을 어떻게 업데이트합니까? 아니면 새로운 이벤트가 생성 될 때 항상 user_id를 설정하는 기본 방법이 있습니까? new.html.erb 이벤트가 이벤트 컨트롤러에 만드는 방법에

<%= simple_form_for(@event) do |f| %> 
    <%= f.error_notification %> 

    <div class="form-inputs"> 
    <%= f.input :name %> 
    <%= f.input :start_at %> 
    <%= f.input :end_at %> 
    </div> 

    <div class="form-actions"> 
    <%= f.button :submit %> 
    </div> 
<% end %> 

답변

1

을 보려면 여기

이 코드를 추가하여 저장하기 전에

events.user_id = current_user.id 

.

@event = Event.new(params[:event]) 과 함께 이벤트를 만드는 경우 @link.user_id = current_user.id on the next line
아마 @link.user = current_user을 수행 할 수 있으며 레일은 ID를 파악합니다.

+0

고맙습니다! 그게 효과가 있었어. ('def create method')에'@event.user_id = current_user.id'를 추가했습니다. – Rahul

관련 문제