2016-08-04 10 views
0

私は現在、redmine Pluginを開発中です。 これまでのところうまくいきました。しかし、私はプラグインをプロジェクトに統合したので、編集ビューを作成するためにform_forを使用することはできません。Redmine Plugin Development edit form_for

編集ビュー:

Formular 
<div class="box tabular"> 
<div class="splitcontent"> 
<div class="splitcontentleft"> 
<%= form_for (@customer) do |f| %> 
    <div class="splitcontent"> 
    <div class="splitcontentleft field_name">Name </div> 
    <div class="splitcontentright"><%= f.text_field :name, :size => 20, required: true %></div> 
    </div> 
</div> 
<hr /> 
<%= render :partial => '/inventory_customers/form_custom_fields' %> 
    <div></div> 
</div> 
<div><%= f.submit submit_text %></div> 

<% end %> 

コントローラ

before_filter :find_project 
... 
def edit 
    @customer = InventoryCustomer.find(params[:id]) 
end 
... 
private 
def find_project 
    # @project variable must be set before calling the authorize filter 
    @project = Project.find(params[:project_id]) 
end 

def customer_params  
    params.require(:inventory_customer).permit(:name, :sap_id, :sap_name, :address, :partner, :partner_text, :active) 
end 

エラーメッセージ

Started GET "/redmine/projects/inventory development/prototyp/inventory_customers/3/edit" for 172.20.1.197 at 2016-08-03 16:07:45 +0200 
Processing by InventoryCustomersController#edit as HTML 
Parameters: {"project_id"=>"inventory-development", "id"=>"3"} 
Current user: COAH (id=38) 
Rendered plugins/prototyp/app/views/_inventory_menu.html.erb (0.7ms) 
Rendered plugins/prototyp/app/views/inventory_customers/_form.html.erb (1.6ms) 
Rendered plugins/prototyp/app/views/inventory_customers/edit.html.erb within layouts/base (2.9ms) 
Completed 500 Internal Server Error in 7ms (ActiveRecord: 0.3ms) 

ActionView::Template::Error (No route matches {:action=>"show", :controller=>"inventory_customers", :id=>nil, :project_id=>#<InventoryCustomer id: 3, name: "blub", partner: false, sap_name: "asdasd", address: "sadasd", active: true, sap_id: "">} missing required keys: [:id]): 
2: <div class="box tabular"> 
3: <div class="splitcontent"> 
4: <div class="splitcontentleft"> 
5: <%= form_for (@customer) do |f| %> 
6: <div class="splitcontent"> 
7:   <div class="splitcontentleft field_name">Name </div> 
8:   <div class="splitcontentright"><%= f.text_field :name, :size => 20, required: true %></div> 
lib/redmine/sudo_mode.rb:63:in `sudo_mode' 

私は編集ビューをロードできるのform_forを削除したが、その後、私はへの道を参照してくださいいけない場合オブジェクトを編集します。

私はちょうどレールとredmineで始まって以来、私はエラーを解決する方法や仕事のarroundを行う方法を絶対に考えていません。

答えて

0

代わり

のform_forパスの使用 form_tag(path, :method=> 'put', :multipart => true) doはcustomer_pathのようなものです。
作成する(単数形以外の)別のパスを使用するようにしてください(複数の場合、IDは必要ありません)

+0

また、f.text_fieldをtext_field_tagに変更してから:nameを "customer [name] –