Rails 4 - 渲染控制器变量

时间:2015-05-25 21:17:42

标签: ruby-on-rails ruby ruby-on-rails-4

我是一个Rails新手,这看起来像是一件小事,但我无法弄清楚如何渲染它。

我有一个接受字符串输入的表单:

<%= form_for @idea do |f| %>
  <div>
    <%= f.label :idea_list %>
    <%= f.text_field :idea_list %>
  </div>
  <%= f.submit %>
<% end %>

还有一个控制器:

class IdeasController < ApplicationController
  def index
  end

  def new
    @idea = Idea.new
  end

  def create
    @idea = Idea.new(idea_params)

    if @idea.save
      render :index
    else
      render 'new'
    end
  end

  private

  def idea_params
    params.require(:idea).permit(:idea_list)
  end
end

然后,我想在idea_list中呈现index.html.erb参数,但无法弄清楚如何执行此操作。我试过了:

<p><%= @idea %></p>

但我的输出为#<Idea:0x007f8b16d98638>

<% @idea do |idea| %>
  <p><%= idea.idea_list %></p>
<% end %>

我已经尝试了很多这方面的变化,但不断遇到各种错误。

请帮忙。

1 个答案:

答案 0 :(得分:1)

所以@idea是一个对象的实例。 idea_list是一个属性。所以你需要致电@idea.idea_list。只要您想从控制器引用对象/模型的实例,它就会转到@instance.attribute

在你的情况下,它将是

<p><%= @idea.idea_list %></p>

如果你想从所有的列表中显示它们,在你的视图中它是

<%@ideas.each do |idea| %>
  <p><% idea.idea_list%></p>
<% end%>

在你的控制器中它是

def index 
  @ideas = Idea.all
end