1

この非常に奇妙な動作が発生しています。アプリケーションの基本的なルーティングが正常に機能する場合とそうでない場合があり、ビュー ファイルで <%= ...... %> 内のルビー コードがレンダリングされない場合があります。全て。この部分 ( <%= %> の内側の部分) は空白で表示されます。これらの delimiters の外側に文字列を書き込むと、ページに表示されるため、コントロールがここに来ることがわかります。

ルーティングの面では、私が抱えている問題は、作成用のコントローラーがインデックスを作成することです。http://www.noupe.com/ajax/create-a-simple-twitter-app.htmlのサンプルチュートリアルに従っていました

ruby バージョン 1.9.3p194 と rails バージョン 3.2.6 を使用しています。

私のソースファイルは次のとおりです。

routed.rb

resources :posts  
match '/create', :to => 'posts#create'

match ':controller(/:action(/:id))(.:format)'

index.html.erb

In posts index file

<% form_tag(:controller => "posts", :action => "create") do %>  
  <%= label_tag(:message, "What are you doing?") %><br />  
  <%= text_area_tag(:message, nil, :size => "44x6") %><br />   
  <%= submit_tag("Update") %>  
<% end %>

create.html.erb

<%= debug(params) %>
<%= render :partial => "message_form" %>
<%= render :partial => @posts %>

show.html.erb

buddy, here I am in show now .

posts_controller.rb

class PostsController < ApplicationController
  def index
    puts "I am in Posts#index"
    @posts = Post.all(:order=>"created_at DESC")
    respond_to do |format|
      format.html
    end
  end

  def show
    puts "I am in Posts#show"
  end

  def edit
    puts "I am in Posts#edit"
  end

  def new
    puts "I am in Posts#new"
  end

  def create
    puts "I am in Posts#create"

    @post = Post.create(:message=>params[:message])
    respond_to do |format|
      if @post.save
        format.html {redirect_to posts_path}
      else
        flash[:notice] = "Message failed to save"
        format.html {redirect_to posts_path}
      end
    end
  end
end

と入力するとhttp://localhost:3000/posts/create、「相棒、ここで私は今ショーにいます」と表示されます。これは show.html.erb のレンダリングであり、ruby コードを実行しません。

入力するとhttp://localhost:3000/posts、「In posts index file」と表示されます。これは、インデックス ファイルをレンダリングしていますが、ルビ コードの一部が実行されていません。

どんな助けでも大歓迎です!

4

1 に答える 1

3

=投稿インデックスのこの行にサインインがないため、フォームがレンダリングされません。

この行

<% form_tag(:controller => "posts", :action => "create") do %>

する必要があります

<%= form_tag(:controller => "posts", :action => "create") do %>

これで、少なくとも 2 番目の問題は解決するはずです。

于 2012-07-15T07:08:14.850 に答える