2013-08-08 3 views
0

Я работаю над почтовой программой с рельсами, но там, где должно быть показано поля, в которых ничего не отображается.Simple_form is blank! Показывает ничего

вид является:

<% simple_form_for(@message, :url => mailer_new_path) do |f| %> 
    <%= f.error_notification%> 
    <div class="inputs"> 
    <%=f.input :subject, :hint => "Write the subject here!"%> 
    <%=f.input :body, :as => :text%> 
    <div class="actions"%> 
    <%=f.button :submit , 'Send Email', :class => "primary btn"%> 
<% end%> 

mailer_controller:

class MailerController < ApplicationController 
    def new 
    @message = Message.new 
    end 
end 

message.rb:

class Message 
    include MongoMapper::Document 

    key :username, String 
    key :subject, String 
    key :body, String 
    #validates_presence_of :username, :body 
end 

В маршрутах у меня есть:

get "mailer/new" 
get "mailer/create" 

Может кто-нибудь мне помочь? Спасибо заранее!

ответ

4

Вместо:

<% simple_form_for(@message, :url => mailer_new_path) do |f| %> 

вы должны иметь:

<%= simple_form_for(@message, :url => mailer_new_path) do |f| %> 

Разница эта <%=.

Это было бы нормально в Rails 2. В Rails 3/4 вы должны поставить = перед вызовом любого помощника вида, даже если вы передадите ему блок.

0

Пятно разница

<%= simple_form_for(@message, :url => mailer_new_path) do |f| %> 
+0

Не лучший способ ответить на вопрос ... – ngoue

+0

@ mcjoejoe0911 Не самый лучший вопрос либо. Это опечатка, она должна быть закрыта. Я призываю вас голосовать за закрытие! –

+1

Я нахожу ваше предложение действительным и сделаю именно это! – ngoue

1

Использование

<%= simple_form_for(@message, :url => mailer_new_path) do |f| %> 
1

<% %> для любого кода Руби, но не выводит результаты (например, если заявления)

<%= %> для выдачи сигнала результаты кода Ruby (например, значения из модели)

<%- and -%> подавляют начальные и конечные пробельные

<%# %> является Еврорадио комментарий