2016-06-28 3 views
0

В моем веб-приложении в каждом альбоме много фотографий, и каждая фотография принадлежит альбому. Я уже делал ассоциации вместе с новыми и создавал действия для фотографий, и я не получаю сообщение об ошибке, однако, когда я перехожу к действиям с альбомами, вновь созданные фотографии не появляются.Rails new/create actions not working

Вид:

 <% @photos.each do |x| %> 
      <div class="new-photo"> 
       <%= image_tag x.image, :style => "height:200px; width:200px; border-radius:5px;" %> 
      </div> 
     <% end %> 

Альбомы контроллер:

def show 
    @album = current_user.albums.find(params[:id]) 
    @photos = @album.photos 
    @interests = current_user.interests 
end 

Фотографии контроллер:

def new 
    @photo = current_user.photos.new 
end 

def create 
    @photo = current_user.photos.new(photo_params) 
    if @photo.save 
     redirect_to '/albums' 
    else 
     render '/photos/new' 
    end 
end 

private 
def photo_params 
    params.require(:photo).permit(:image) 
end 

Фото Модель:

class Photo < ActiveRecord::Base 
belongs_to :album 
belongs_to :user 

конец

Альбом модель:

class Album < ActiveRecord::Base 
belongs_to :user 
has_many :photos 

конец

+0

использование 'build' вместо' новый' в твоем действии. [this] (http://stackoverflow.com/questions/4954313/build-vs-new-in-rails-3) может вам помочь. –

+0

По-прежнему получил тот же результат – nums

+0

мог бы вы пройти мимо кода модели? есть ли у вас какие-либо проверки? – Sean

ответ

0

Таким образом, кажется, что изображение создается без альбома ид. Внутри нового действия, то album_id должны быть назначены для того, чтобы отображать фотографии позже с @photos = @ album.photos

эта линия

params.require(:photo).permit(:image) 

должен включать

params.require(:photo).permit(:image, :album_id)