Anton Mislavsky
2009-Sep-15 04:09 UTC
how to bind controller and model with different names?
I''m quite new in ruby.I''m doing simple guestbook. There are
feedback
controller and message model with a scaffolding. I made scaffolding for
"message" model for example reasons, but when I send some data via
feedback/index it redirects me to the messages controller''s
"create"
action.
1) Can you show my mistakes and edit some code for clear work with one
controller.
2) I want to make form_for function in the partial shorter
here is a feedback controller
[code]
class FeedbackController < ApplicationController
layout ''application''
def index
@message = Message.new(params[:id])
@messages = Message.all
end
def show
@message = Message.find(params[:id])
end
def new
@message = Message.new
end
def edit
@message = Message.find(params[:id])
end
def create
@message = Message.create(params[:message])
if @message.save
flash[:notice] = ''Message was successfully created.''
########### I''m sure that problem somewhere here, but I don''t
know which
string should replace that #########
redirect_to(@message)
else
render :action => "new"
end
end
def update
@message = Message.find(params[:id])
respond_to do |format|
if @message.update_attributes(params[:message])
flash[:notice] = ''Message was successfully updated.''
redirect_to(@message)
else
render :action => "edit"
end
end
end
def destroy
@message = Message.find(params[:id])
@message.destroy
respond_to do |format|
redirect_to(messages_url)
end
end
end
[/code]
Here is form partial, which render by application layout.(i want to make
form_for shorter and working without 1st argument ":feedback")
[code]
<% form_for(:feedback, @message, :method => ''post'',
:url => {:action =>
''create'', :controller => ''feedback''},
:html => {:class =>
''mycleancssform'', :id =>''stylized''}) do
|f| %>
<%= f.error_messages %>
<p>
<%= f.label :message, ''Message'' %><br />
<%= f.text_area (:message, :cols => 53, :rows =>5) %>
</p>
<p>
<%= f.label :firstname, ''Name'' %><br />
<span class="small">min 2 chars</span>
<%= f.text_field :firstname %>
</p>
<p>
<%= f.label :secondname, ''SEcondname'' %><br />
<span class="small">min 2 chars</span>
<%= f.text_field :secondname %>
</p>
<p>
<%= f.label :email, ''Email'' %><br />
<span class="small"></span>
<%= f.text_field :email%>
</p>
<p>
<%= f.label :site, ''Site'' %><br />
<span class="small"></span>
<%= f.text_field :site %>
</p>
<p>
<%= f.submit ''Submit'' %>
</p>
<div class="spacer"></div>
<% end %>
[/code]
--
Posted via http://www.ruby-forum.com/.