0

사용자가 & 하이킹 트레일의 세부 정보를 업로드 할 수있는 대학용 앱을 개발 중입니다.외부 키가 업데이트되지 않습니다.

지금까지 모든 것이 작동하고 있습니다. & 나는 각 등산로의 사진에 중첩 된 양식을 구현했습니다. 사용자는 로그온하여 & 하이킹을 만들 수 있습니다. 내가 좋아하는 것

은 사용자가 내가 내 데이터베이스 & 내 모델의 has_many & belongs_to 옵션에서 관계를 설정 한 경우이/프로필 페이지를 표시하지만,에 생성 된 모든 인상을 표시합니다. 또한 중첩 된 accepts_nested_attributes_for :hikingtrails 중 하나를 사용하여이 작업을 시도하지 않았습니다.

사용자가 hikingtrail을 만들었을 때 테이블의 user_id 필드를 업데이트하지 않았을 때 데이터베이스를 검사했습니다.

내가 완전히 다르게 접근하고 있는지 확실하지 않습니다. 다형성 연관을 조사해야합니까?

class User < ActiveRecord::Base 
    attr_accessible :user_name, :email, :password, :password_confirmation, :photos_attributes, :hikingtrails_attributes 


    has_many :hikingtrails 
    accepts_nested_attributes_for :hikingtrails, :allow_destroy => :true, :reject_if => :all_blank 




class Hikingtrail < ActiveRecord::Base 
    attr_accessible :description, :name, :looped, :photos_attributes,:directions_attributes, :user_id 


    has_many :photos 
    has_many :trails 
    has_many :directions 
    belongs_to :user 

사용자/show.html.erb

<div class="page-header"> 
    <h1>Your Profile</h1> 
</div> 


<p> 
    <b>username:</b> 
    <%= @user.user_name %> 
</p> 

<p> 
    <b>email:</b> 
    <%= @user.email %> 
</p> 

<h4>Small Photos</h4> 
<% @user.photos.each do |photo| %> 
<%= image_tag photo.image_url(:thumb).to_s %> 
<% end %> 

<h4>Hiking Trails</h4> 
<% @user.hikingtrails.each do |hk| %> 
<%= hk.name %> 
<% end %> 

<%= link_to "Edit your Profile", edit_user_path(current_user), :class => 'btn btn-mini' %> 

답변

1

당신은 Hikingtrail 모델에 접근 할 수없는 속성에 :user_id를 추가하지 않았다. 다음보십시오 :

attr_accessible :description, 
            :duration_hours, 
            :duration_mins, 
            :name, 
            :looped, 
            :addr_1, 
            :addr_2, 
            :addr_3, 
            :country, 
            :latitude, 
            :longitude, 
            :photos_attributes, 
            :trails_attributes, 
            :directions_attributes, 
            :user_id 

UPDATE : 를 양식 코드를 본 후, 나는 그것이 위를 할 아마 필요가 없습니다 및 잠재적으로 안전하지 않을 수 있다고 생각. 대신, 대량 할당을 통해 USER_ID를 설정하지 않지만,과 같이 컨트롤러에 사용자 할당을 처리 :

class HikingtrailsController < ApplicationController 
    # ... 
    def create 
    @hikingtrail = Hikingtrail.new(params[:hikingtrail]) 
    @hikingtrail.user = current_user 
    if @hikingtrail.save 
     # ... 
    else 
     # ... 
    end 
    end 
end 

희망이 있습니다 :) 도움이

+0

좋은 점,하지만 여전히 작동하지 않습니다 & 던지고 오류없이 데이터베이스를 확인할 때 오류가 표시되지 않습니다. user_id가 업데이트되지 않았습니다. – Holly

+0

좋아, 양식 사본으로 질문을 업데이트 할 수 있습니까? –

+0

감사합니다. Jaap, 방금 업데이트했습니다 – Holly