【问题标题】:Rails new/create actions not workingRails 新建/创建操作不起作用
【发布时间】:2016-06-28 18:03:14
【问题描述】:

在我的网络应用中,每个相册都有很多照片,每张照片都属于一个相册。我已经完成了关联以及新创建的照片操作,我没有收到错误,但是,当我转到相册显示操作时,新创建的照片没有出现。

查看:

        <% @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

结束

【问题讨论】:

  • 在您的创建操作中使用build 而不是newthis 可能会对您有所帮助。
  • 还是一样的结果
  • 你能把你的型号代码给过去吗?你有任何验证吗?
  • 如何上传图片? params.require(:photo).permit(:image)...图像参数的值是多少?
  • 您已经仔细检查了数据库以确保您的照片正在保存并保存到正确的相册中?

标签: ruby-on-rails ruby


【解决方案1】:

所以看起来图像是在没有专辑 ID 的情况下创建的。在新操作中,应该分配album_id,以便稍后使用@photos = @album.photos 显示照片

这一行

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

应该包括

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

【讨论】:

    猜你喜欢
    • 2011-05-17
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 2017-10-18
    • 2012-10-28
    相关资源
    最近更新 更多