0

Ruby on Rails プロジェクトで作成した投稿を更新しようとしていますが、何も起こりません。エラーが発生せず、何が間違っているのかわからないように見えるので、本当に面倒です。

以前は機能していたと思いますが、最初にさまざまなアクションを作成して以来、インプレッションやタグなど、「フィード」モデルに複数のものを追加しました。これが更新アクションに影響したかどうかはわかりません...

私のコントローラーは次のようになります。

  def edit
    @feed = Feed.find(params[:id])
  end

  def update
   @feed = Feed.find(params[:id])
    respond_to do |format|
     if @feed.update_attributes(params[:feed])
      format.html { redirect_to @feed, notice: 'Feed was successfully updated.' }
      format.json { head :no_content }
     else
      format.html { render action: "edit" }
      format.json { render json: @feed.errors, status: :unprocessable_entity }
     end
    end
  end

私のフィード モデルは次のようになります。

  attr_accessible :content, :tag_list, :guid, :language, :location, :published_at, :summary, :url, :title, :user_id, :thumbnail_url, :url_to_feed, :type_of_feed
  has_many :impressions, :as=>:impressionable
  validates_length_of :tag_list, :maximum => 10
  acts_as_taggable

私の見解は次のようになります。

  <h1>Editing feed</h1>

  <%= render 'form' %>
  <%= link_to 'Show', @feed %> |
  <%= link_to 'Back', feeds_path %>

  ____________________ form

  <%= form_for(@feed) do |f| %>
   <% if @feed.errors.any? %>
   <div id="error_explanation">
   <h2><%= pluralize(@feed.errors.count, "error") %> prohibited this feed from being saved:</h2>
   <ul>
     <% @feed.errors.full_messages.each do |msg| %>
      <li><%= msg %></li>
     <% end %>
   </ul>
    </div>
  <% end %>

 <div class="field">
  <%= f.label :title %><br />
  <%= f.text_field :title %>
 </div>
 <div class="field">
  <%= f.label :content %><br />
  <%= f.text_area :content %>
 </div>
  <div class="field">
  <%= f.label :location %><br />
  <%= f.text_field :location %>
  </div>
 <div class="field">
  <%= f.label :language %><br />
  <%= f.text_field :language %>
 </div>

  <div class="field">
<%= f.label :tag_list, "Tags (seperated by spaces)" %><br />
<%= f.text_field :tag_list %>
  </div>

  <div class="actions">
   <%= f.submit %>
  </div>
4

1 に答える 1

1

ログエントリ

Started PUT "/feeds/1" for 127.0.0.1 at 2013-02-17 12:27:36 +0100 Processing by FeedsController#show as HTML

PUT リクエスト (フォーム データの送信) は FeedsController#show によって処理されていますが、FeedsController#update によって処理する必要があります。したがって、ルートが間違っているようです。Rails ルーティング ガイドを確認してください。

正しいルートが自動的に作成されるため、フィード リソースを使用します。

resources :feeds
于 2013-02-17T12:04:52.803 に答える