請原諒我的無知,但我對RoR相當陌生。我正在開發一個項目,用戶可以複製帖子以編輯這個「克隆版本」並保存它(當然有一個新的帖子ID)。我正在嘗試複製activerecord記錄,但收到NoMethodError - 未定義的方法
首先我試圖用Amoeba gem描述如here,但我失敗了。
後來我想我找到了一個更好的解決方案 - Duplicating a record in Rails 3 - 但是當我整合建議的代碼,我收到以下錯誤:在帖子
NoMethodError#顯示 未定義的方法`clone_post_path」爲#<# :0x0000010267b8c8>
研究和修補現在幾個小時,我真的很感激任何幫助!
我正在使用Rails 3.2.13。
在我posts_controller我有以下代碼:
def show
@post = Post.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @post }
end
end
def new
@post = current_user.posts.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @post }
end
end
def clone
@post = current_user.posts.find(params[:id]) # find original object
@post = current_user.posts.new(@post.attributes) # initialize duplicate (not saved)
render :new # render same view as "new", but with @post attributes already filled in
end
def create
@post = current_user.posts.new(params[:post])
respond_to do |format|
if @post.save
format.html { redirect_to @post, notice: 'Post was successfully created.' }
format.json { render json: @post, status: :created, location: @post }
else
format.html { render action: "new" }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
end
這是post.rb型號:
class Post < ActiveRecord::Base
attr_accessible :content, :title, :videos, :link, :description
validates :title, presence: true
belongs_to :user
end
在Show View我稱之爲:
<%= link_to 'Create a clone', clone_post_path(@post) %>
我究竟做錯了什麼? 非常感謝您的幫助!
UPDATE: 添加
resources :posts do
get 'clone', on: :member
end
到路由文件的工作。
這裏是路線文件:
末
不幸的是後來發生了新的錯誤:
::加載ActiveModel :: MassAssignmentSecurity中的錯誤PostsController#克隆 不能質量 - 分配受保護的屬性:id,created_at,updated_at,image_file_name,image_content_type,image_file_size,image_updated_at,file,user_id
你能否也請張貼有關郵政控制器的路線?我猜你沒有在你的帖子路徑中添加get:clone,on :: member。 – davidfurber
Thx David!往上看。 – YvonC
@davidfurber你的提示「on:member」工作!往上看。讓我的一天!不幸的是,現在我有一個新的錯誤: ::加載ActiveModel :: MassAssignmentSecurity中的錯誤PostsController#克隆 不能大規模指派保護的屬性:id,created_at,的updated_at,映像文件,image_content_type,IMAGE_FILE_SIZE,image_updated_at,文件,user_id說明 – YvonC