2

我已经成功建立了模型和相册之间的链接。下一步我添加了一个用户模型并建立了与相同模型的连接。它可以工作,用户可以创建相册和上传照片,但是如果 Paul 想要将用户链接放入相册,最好mysite.com/user/1/albums/1
在 routes.rb 中看起来像这样我添加了以下代码

resources :users do
  resources :albums do
    resources :photos
  end
end

在模板中添加图片的代码是相册(albums/show.html.erb)。添加资源后:用户出现错误

undefined method `album_photos_path'

参考这条红宝石线

<H1>ADD NEW IMAGE</H1>
    <%= form_for [@album, @photo], :html => {:multipart => true} do |form| %>   

有人建议我应用 url_option,但我不知道它是如何工作的。

在 PhotosController 中定义创建

def create
  @photo = @album.photos.new(params[:photo])
  @photo.user_id = current_user.id
  if @photo.save
    flash[:notice] = "Photo created!"
    redirect_to album_url(@album)
  else
    flash[:notice] = "No created"
    redirect_to album_url(@album)
  end
end

我的问题有一个优雅的解决方案吗?

4

1 回答 1

0

根据您的评论,您似乎需要这个:

<%= form_for user_album_photos_path(@user, @album, @photo), :html => {:multipart => true} do |form| %>

在控制器中:

def create
  @user = User.find(params[:user_id])
  if @user.id != current_user.id
    # display some error and redirect
  end
  @album = current_user.albums.find(params[:album_id])
  @photo = @album.photos.new(params[:photo])
  ...
end
于 2013-05-27T12:03:59.657 回答