大家好,在我的索引视图页面中,我在这一行中遇到了这个错误:
<td id="change"><%= link_to 'Analyze',user_generator_path(current_user.generators)%></td>
该行的代码为:
<% if generator.result.present?%>
<td> <%= generator.result.ncbi_ref_seq %></td>
<td> <%= generator.result.genome_sample %></td>
<td align="center"><%= generator.result.binding_times %></td>
<td id="change"></td>
<td id="change"><%= link_to 'Delete', generator, method: :delete, data: { confirm: 'Are you sure?' } %></td>
<% else %>
<td></td>
<td></td>
<td></td>
<td id="change"><%= link_to 'Analyze',user_generator_path(current_user.generators)%></td>
<td id="change"><%= link_to 'Delete', generator, method: :delete, data: { confirm: 'Are you sure?' } %></td>
<% end %>
我正在
No route matches {:action=>"show", :controller=>"generators", :user_id=>#<ActiveRecord::Associations::CollectionProxy [#<Generator id: 1, primer_length: 20, no_A: nil, no_T: nil, no_G: nil, no_C: nil, melting_temp: nil, choice: nil, random_primer_generated: nil, user_seq: nil, f_primer: nil, r_primer: nil, result_choice: nil, user_id: 1, created_at: "2013-12-09 09:27:39", updated_at: "2013-12-09 09:27:39">]>, :id=>nil, :format=>nil} missing required keys: [:id]
Generator.rb
def new
@generator = current_user.generators.build(params[:generator])
end
def create
@generator = current_user.generators.build(params[:generator])
@generator.user_id = current_user.id if current_user
@generator.choice = params[:choice]
if params[:choice] == 'Randomly'
@generator.random_generate(generator_params)
elsif params[:choice] == 'Specified ATGC'
@generator.specified_ATGC(params[:no_A],params[:no_T],params[:no_G],params[:no_C])
elsif params[:choice] == 'Seating'
@generator.seating(params[:user_seq])
end
@generator.result_choice=params[:result_choice]
@generator.save
respond_to do |format|
if @generator.result_choice == 'Yes'
format.html { redirect_to(user_generator_path(@generator)) }
else
format.html { redirect_to(user_generators_path(@generator) ) }
end
end
end
我该如何解决?我只是想显示用户的发电机。如果有结果,那么user.generators.result
Route.rb
root :to => 'welcome#index'
get '/auth/:provider/callback' => 'sessions#create'
post '/auth/identity/callback' => 'sessions#create'
resources :users do
resources :generators
resources :results
end
resources :identities
答案 0 :(得分:1)
对我而言,这似乎是罪魁祸首:
:id=>nil
我们之前已经遇到过嵌套路由的问题(你有/users/15/articles/215/edit
)
这是一个即时修复:
user_generator_path(:user_id => current_user.generators, :id => variable_here)
但是,您的系统似乎存在更深层次的问题,即您创建的似乎是member route的内容,需要id
参数才能使其正常工作
系统修复
您提到“只想显示用户的生成器”,这将为用户index
创建generators
收集路由?
显示此方法的方法是首先更改链接以打开index
控制器的generators
操作。目前,您的控制器显示您要么加载new
或create
操作,而您的错误与打开show
操作有关。显示操作特别需要项目的id
,这是此错误的形式
从它的声音中,我只是路由到index
的{{1}}路径。在那里,您可以为用户显示生成器,而无需特定的users_generators_path