我有一个属于用户的项目。在我的用户视图中,我有一个添加新项目的链接,其中包含我想要添加项目的用户的参数。
<%= link_to 'Add new project', :controller => "project", :action => "new", :id => @user %>
Url: /projects/new?id=62
向用户添加项目是可行的。问题是当添加新项目时验证失败并且我进行渲染时。
def create
@project = Project.new(params[:project])
if @project.save
redirect_to :action => "show", :id => @project.id
else
render :action => "new"
end
end
看法:
<%= form_for @project do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.hidden_field :user_id , :value => params[:id] %>
<%= f.submit "Create project" %>
<% end %>
路线
resources :users do
resources :projects
end
渲染后如何为用户保留参数?还是有更好的方法来做到这一点?一直在寻找很多类似的问题,但无法让它发挥作用。