On Apr 14, 10:46 pm, Colin Law <[email protected]> wrote:
> On 14 April 2010 03:47, Cote <[email protected]> wrote:
>
>
>
> >...
> > Hi Team,
>
> > I am having a similar problem, also following along from railscast 32.
>
> > Any suggestions welcome. Is it an erb thing or something wrong with my
> > model code? Also :formdate is a date field not a datetime field.
>
> > ==========
> > View throws this ERROR PAGE:
> > ArgumentError in Contracts#new
>
> > Showing app/views/contracts/new.html.erb where line #84 raised:
>
> > wrong number of arguments (1 for 0)
>
> > Extracted source (around line #84):
>
> > 81: <td>
> > 82: <div class="order_details">
> > 83:
> > 84: <div class="onecol"><%= f.label
> > :formdate, "Date" %><br /><%=
> > f.text_field :formdate_string
> > 85: %></div>
> > 86: <div class="twocol1"><%= f.label
> > :publication %> <%=
> > f.text_field :publication %></div>
> > 87: <div class="twocol2"><%= f.label
> > :issue %> <%=
> > f.text_field :issue %></div>
>
> This is not a similar problem at all. The OP had an issue with
> validations, yours is showing an error.
>
> I don't see the problem immediately, but I suggest removing bits of
> code till it does not show the error, then putting it back a little at
> a time till you find exactly what is causing the problem.
>
>
>
>
>
> > Request
>
> > Parameters:
>
> > None
>
> > Show session dump
>
> > ---
>
> > Response
>
> > Headers:
>
> > {"Content-Type"=>"text/html",
> > "Cache-Control"=>"no-cache"}
> > ==========
>
> > MODEL:
> > class Contract < ActiveRecord::Base
>
> > def formdate_string
> > formdate.to_s(:db)
> > end
>
> > def formdate_string=(fdate_str)
> > self.formdate = Time.parse(fdate_str)
> > end
>
> > end
> > ==========
>
> > VIEW: new.html.erb - extract
> > <div class="onecol"><%= f.label :formdate, "Date" %><br />
> > <%= f.text_field :formdate_string %></
> > div>
>
> That does not appear to be exactly the same code as shown in the error
> above. Above it has a newline after :formdate_string, as it shows the
> %> on line 85. Could that be part of the problem I wonder?
>
> Colin
Thanks for your prompt reply. It wasn't the new line, but that
difference was well spotted.
I found it... makes sense now... ArgumentError... it wasn't getting
passed an argument for a new form. The form worked for the edit action
when the field was populated.
I needed to initialize the formdate field with a value. So I added
this to the "new" action of the controller.
eg.
def new
@contract = Contract.new
@contract.formdate = Time.now.localtime.strftime("%Y-%m-%d")
end
Would you say this is good practice? or could I do it better elswhere
or with different code?
Cheers.
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.