Я читал:
Rails: передать параметры с render: action? , но у меня все еще проблемы.
Мой URL для новой страницы: http://localhost:3000/submit?category_id=2. Отправка формы в первый раз работает без каких-либо проблем, но если создание не удается и контроллер отображает новую страницу, я получаю сообщение об ошибке, не могу найти категорию без id, потому что параметр не передается.
Вот краткая версия new.html.erb и контроллеров new / create
def new
...
@category = params[:category_id]
@title = "Submit a review"
end
def create
....
if @review.save
flash[:success] = "New a Created"
redirect_to user_path(@user)
else
@title = "New Review"
render :action => 'new', :category_id => @category
end
end
В строке 1 приведена ошибка.
<h1>Blah, blah, blah<%= "best #{Category.find(@category).name}" %></h1>
<br />
<%= form_for(...) do |f| %>
<%= render 'shared/error_messages', :object => f.object %>
<tr>
<td> <%= select_tag(... %></td>
<td><%= collection_select(...) %><br /> %></td>
<td><%= f.text_field ... %></td>
</tr>
</table>
<%= f.hidden_field :category_id, :value=>@category %>
<div class="actions">
<%= f.submit "Add" %>
</div>
<% end %>
Любая помощь приветствуется. Я ходил в кругах часами.