사용자가 내 웹 사이트에서 판매하거나 대여 할 개체를 게시 할 수있는 소속 모델이 있습니다. 나는 최근 양식을 변경하여 여러 단계 형식으로 만들었습니다. 첫 번째 양식은 개체의 이름을 묻습니다. 개체가 판매 또는 임대중인 경우 두 번째 양식은 개체의 세부 사항을 묻고 필드는 사용자의 선택에 따라 달라집니다 .다단계 양식을 사용할 때 tag_list를 저장할 수 없습니다.
레일 3.0.5와 함께 is_taggable을 사용하고 있는데, 다단계 양식 (다른 모든 필드가 올바르게 저장 됨)으로 전환 한 이후로는 tag_list가 데이터베이스에 저장되지 않습니다.
나는 Ryan Bates Rails 캐스트 # 217을 따라 갔다.
하기 전에, 내가 사용했다 : @belonging.tag_list = session[:belonging_params][:tag_list]
나는 레일에서 초보자의 비트입니다, 그래서 내가 여기에 놓친 거지 분명 뭔가가있을 수 있습니다 : 나는 다단계에서 된 이후 @belonging.tag_list = params[:belonging][:tag_list]
, 내가 사용하고 . 나는 오후와 저녁에 무엇이 잘못되었는지 이해하려고 노력 했으므로 어떤 도움을 주시면 감사하겠습니다!
여기내 컨트롤러의 '생성' '새로운'행동은 다음과 같습니다 단서에 대한
이class BelongingsController < ApplicationController
before_filter :authenticate_user!, :except => [:index, :with_tag, :remove_tag]
after_filter :update_tag_cloud, :only => [:create, :update]
def new
@title = "Insert a new product or service"
@user = current_user
session[:belonging_params] ||= {}
session[:belonging_step] = nil
@belonging = @user.belongings.new(session[:belonging_params])
session[:belonging_params][:tag_list] ||= []
@belonging.current_step = session[:belonging_step]
render 'new'
end
def create
session[:belonging_params].deep_merge!(params[:belonging]) if params[:belonging]
@belonging = current_user.belongings.build(session[:belonging_params])
@belonging.current_step = session[:belonging_step]
@belonging.tag_list=session[:belonging_params][:tag_list]
if params[:previous_button]
@belonging.previous_step
render 'new'
elsif params[:cancel_button]
session[:belonging_step] = session[:belonging_params] = nil
redirect_to user_path(current_user)
elsif params[:continue_button]
if @belonging.last_step?
if @belonging.save!
expire_fragment('category_list')
flash[:success] = "New product or service created!"
session[:belonging_step] = session[:belonging_params] = nil
redirect_to belonging_path(@belonging)
else
flash[:error] = "Object could not be saved"
render 'new'
end
else
@belonging.next_step
render 'new'
end
else
render 'new'
end
session[:belonging_step] = @belonging.current_step
end
많은 많은 감사!
session[:belonging_params].deep_merge!(params[:belonging]) if params[:belonging]
모든 것을 내부 PARAMS가 복사합니다 :