У меня есть действие index
:Как я могу перенаправить на объект в массиве
def index
if params['type'] == 'random'
@objects = Object.order("RANDOM()").limit(1)
else
@objects = Object.all.limit(1)
end
end
и create
действие:
def create
object = Object.find(params[:object_id])
comment = object.comments.create(params[:comment].permit(:body))
respond_to do |format|
format.html
format.js #ajax
end
if comment.save
redirect_to root_path(params[:object_id]) #doesn't work
else
flash[:error] = comment.errors.full_messages[0]
redirect_to root_path(params[:object_id]) #doesn't work
end
end
Я могу прокомментировать объект в моей index
странице. Когда я помещаю комментарий, я хочу перенаправить на объект, который был прокомментирован.
С моим кодом страница перезагружается, но отображается следующий объект, и я не вижу комментария. Как я могу перенаправить на тот же объект?
Мои root_path
<span class="random-icon"><%= link_to icon('random'), "http://localhost:3000/?type=random" %></span>
<div class="inner-container">
<% @objects.each do |object| %>
<h1 class="title"><%= object.title %></h1>
<p class="obj"><%= object.body %></p>
<h3 class="comments-title">Comments:</h3>
<div id="comments">
<% object.comments.each do |comment| %>
<div class="comments"> <%= comment.body %>
<span class="time-to-now"><%= distance_of_time_in_words_to_now(comment.created_at) %> ago</span>
</div>
<% end %>
</div>
<div id="error"><%= flash[:error] %></div>
<%= form_for([object, object.comments.build], remote: true) do |f| %>
<%= f.text_area :body, class: "text-area" %>
<p class="char-limit">255 characters limit</p>
<%= f.submit "Comment", class: 'button' %>
<% end %>
<% end %>
</div>
Что находится в 'root_path'? Можете ли вы показать код? – RSB
Я не думаю, что здесь 'root_path' получает какие-либо параметры. У вас есть какой-либо путь, например 'show_object', который получает параметр' object_id' в качестве параметра? – 31piy
Нет, мне нужно делать только на индексной странице, я не могу использовать страницу показа. –