2015-05-25 2 views
0

Я новичок Rails, и это кажется тривиальной штукой, но я не могу понять, как это сделать.Rails 4 - переменная контроллера Render

У меня есть форма, которая принимает в строковый:

<%= 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 %> 

Я пробовал много вариантов этого, но все равно получаю различные ошибки.

Пожалуйста, помогите.

+0

Должно быть просто '@ idea.idea_list'. –

ответ

1

So @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 
+0

Спасибо, это было легко. Я мог бы поклясться, что попробовал это. – jdesilvio

+0

Рад, что это помогло. FYI, [rails guide] (http://guides.rubyonrails.org) отлично подходят для использования с Rails и в качестве ссылки. – creativereason

Смежные вопросы