def index
@artists = current_user.posts.join("artisianships").join("artists").
where("artisianships.post_id = posts.id").
where("artists.name like ?", "#{params[:q]}").
select("artists.name as name, artists.id as id")
results = @artists.map(&:attributes)
results << {:name => "Add: #{params[:q]}", :id => "CREATE_#{params[:q]}_END"}
respond_to do |format|
format.html
format.json { render :json => results }
end
end
请注意,这里有很多联接,因此不建议这样做。
要调试为什么Artist.create!(:name => $1, :user_id =>self.user_id)
不起作用,最好能看到更多代码,尤其是action
创建一个Post
更新:您是否尝试过更改PostController#create
为以下内容,尽管我认为当前代码应该可以正常工作,
@post = current_user.posts.build
if @post.update_attributes(params[:post])
# do something
else
# do something else
end