Я пытался справиться с jQuery и следовал railscast при добавлении формы обзора Ajax add, которая отлично работает, но теперь я хотел бы добавить в нее возможность обзорапринадлежат как пользователю, так и месту проведения.
Обзоры контроллера
def create
@review = Review.create!(params[:review])
@review.venue = @venue
if @review.save
flash[:notice] = 'Thank you for reviewing this venue!'
respond_to do |format|
format.html { redirect_to venue_path(@venue) }
format.js
end
else
render :action => :new
end
end
просмотров \ обзоров \ create.js.erb
$("#new_review").before('<div id="flash_notice"><%= escape_javascript(flash.delete(:notice)) %></div>');
$("#reviews_count").html("<%= pluralize(@review.venue.reviews.count, 'Review') %>");
$("#reviews").append("<%= escape_javascript(render(:partial => @review)) %>");
$("#new_review")[0].reset();
Я пробовализменив контроллер на:
def create
@review = @current_user.reviews.create!(params[:review])
@review.venue = @venue
if @review.save
flash[:notice] = 'Thank you for reviewing this venue!'
respond_to do |format|
format.html { redirect_to venue_path(@venue) }
format.js
end
else
render :action => :new
end
end
но он просто не будет отправляться, без ошибок.
Я думаю, что у меня правильно установлены модели с помощью bound_to и has_many, я думаю, что это проблема контроллераПри необходимости я добавлю другие биты кода.
Журнал разработки
NoMethodError (undefined method `reviews' for nil:NilClass):
app/controllers/reviews_controller.rb:14:in `create'
Спасибо за любую помощь!